Динамический SQL
Добавлено: 04 фев 2005, 12:22
День добрый!
Столкнулся с трудностями в следуюшей ситуации
есть форма для редактирования пары полей, использую компонент
TIBDataSet, до момента открытия DataSet'a заполняю свойства
lSql := 'select ID_MAIL,MAIL_LOGIN,MAIL_PASSWD
where ID_MAIL=:IID_MAIL';
QSelect.SQL.Clear(); QSelect.SQL.Add(lSql);
lSql := 'update MAIL set MAIL_LOGIN=:IMAIL_LOGIN,MAIL_PASSWD=:IMAIL_PASSWD
where ID_MAIL=:IID_MAIL';
QModify.SQL.Clear(); QModify.SQL.Add(lSql);
Тут клиент редактирует данные и пытается их сохранить
Перед событием Post я заполняю поля запроса
QModify.Params.ByName('IMAIL_LOGIN').asString := Trim( FieldByName('MAIL_LOGIN').asString);
QModify.Params.ByName('IMAIL_PASSWD').asString := Trim(FieldByName('MAIL_PASSWD').asString);
В чем трудность: если пользователь отредактировал только одно из двух полей, как мне удалить подавить обновление в базе второго поля
(которое не редактировалось) простая пересборка SQL выражения не подходит, тк набор данных уже открыт.
Столкнулся с трудностями в следуюшей ситуации
есть форма для редактирования пары полей, использую компонент
TIBDataSet, до момента открытия DataSet'a заполняю свойства
lSql := 'select ID_MAIL,MAIL_LOGIN,MAIL_PASSWD
where ID_MAIL=:IID_MAIL';
QSelect.SQL.Clear(); QSelect.SQL.Add(lSql);
lSql := 'update MAIL set MAIL_LOGIN=:IMAIL_LOGIN,MAIL_PASSWD=:IMAIL_PASSWD
where ID_MAIL=:IID_MAIL';
QModify.SQL.Clear(); QModify.SQL.Add(lSql);
Тут клиент редактирует данные и пытается их сохранить
Перед событием Post я заполняю поля запроса
QModify.Params.ByName('IMAIL_LOGIN').asString := Trim( FieldByName('MAIL_LOGIN').asString);
QModify.Params.ByName('IMAIL_PASSWD').asString := Trim(FieldByName('MAIL_PASSWD').asString);
В чем трудность: если пользователь отредактировал только одно из двух полей, как мне удалить подавить обновление в базе второго поля
(которое не редактировалось) простая пересборка SQL выражения не подходит, тк набор данных уже открыт.