Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.
Самый верный способ.


Наверх

Титульная страница Поиск, карта сайта Написать письмо