-
Подскажите, пожалуйста что я делаю не так. У меня IbQuery+IBUpdateSQL+DBGrid, CachedUpdates:=True Где-то внутри текста есть IBDatabase1.ApplyUpdates([Query2])
Я обрабатываю правильность введенных пользователем записей и тут же его предупреждаю о неправильности
procedure IbQuery2UpdateRecord(DataSet: TDataSet; UpdateKind: TUpdateKind; var UpdateAction: TIBUpdateAction) begin if (Условие) then //если все правильно begin IBUpdateSQL1.Apply(UpdateKind); UpdateAction:=TIBUpdateAction(uaApply); end else //неправильно begin ShowMessage('Неверно введены данные'); UpdateAction:=TIBUpdateAction(uaAbort); IbQuery2.RevertRecord; end end;
Неправильно работает ветвь else если происходит операция вставки, т.е. когда UpdateKind=ukInsert. Выдается мое сообщение 'Неверно введены данные', а затем вылазит ошибка 'IbQuery2: Record not found'. Что можно с этим сделать?
-
> Неправильно работает ветвь else если происходит операция > вставки, т.е. когда UpdateKind=ukInsert. > Выдается мое сообщение 'Неверно введены данные', а затем > вылазит ошибка 'IbQuery2: Record not found'. > Что можно с этим сделать? >
Try...except. Самый верный способ.
-
Дело в том что (Условие) у меня следующее: if (IbQuery2.FieldByName('dat').NewValue>=Now()) then .... поэтому мне нужно использовать OnUpdateRecord
-
Во-первых, забыть про IbQuery+IBUpdateSQL, как про атавизм. Использовать TIBDataSet.
|