![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IbQuery + OnUpdateRecord [D5]
AlexeyMir © (2008-04-16 02:17:00)Подскажите, пожалуйста что я делаю не так.
У меня 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'.
Что можно с этим сделать?
Johnmen (2008-04-16 09:00:00) [1]Во-первых, забыть про IbQuery+IBUpdateSQL, как про атавизм. Использовать TIBDataSet.
AlexeyMir (2008-04-16 02:57:00) [2]Дело в том что (Условие) у меня следующее:
if (IbQuery2.FieldByName('dat').NewValue>=Now()) then ....
поэтому мне нужно использовать OnUpdateRecord
Германн (2008-04-16 02:40:00) [3]
> Неправильно работает ветвь else если происходит операция
> вставки, т.е. когда UpdateKind=ukInsert.
> Выдается мое сообщение 'Неверно введены данные', а затем
> вылазит ошибка 'IbQuery2: Record not found'.
> Что можно с этим сделать?
>
Try...except.
Самый верный способ.