Конференция "Базы" » OnUpdateRecord в IBDataSet [D5]
 
  • AlexeyMir (18.04.08 17:48) [0]
    Подскажите, пожалуйста что я делаю не так.
    У меня IBDataSet1+DBGrid, CachedUpdates:=True
    Где-то внутри текста есть IBDatabase1.ApplyUpdates([IBDataSet1])

    Я обрабатываю введенные пользователем записи и тут же его предупреждаю, если не удовлетворяет моим условиям, и отменяю добавление или исправление записи не удовлетворяющую условию

    procedureIBDataSet1UpdateRecord(DataSet: TDataSet;  UpdateKind: TUpdateKind; var UpdateAction: TIBUpdateAction);
    begin
     if (IBDataSet1.FieldByName('dat').NewValue>=Now()) then      //если все правильно
       begin
       UpdateAction:=TIBUpdateAction(uaApply);
       end
     else                     //неправильно
      begin
       ShowMessage('Неверно введены данные');
       UpdateAction:=TIBUpdateAction(uaAbort);
       IBDataSet1.RevertRecord;
     end
    end;

    Неправильно работает ветвь else если происходит операция вставки, т.е. когда UpdateKind=ukInsert.
    Выдается мое сообщение 'Неверно введены данные', а затем вылазит ошибка 'IBDataSet1: Record not found'.
    Что можно с этим сделать?
 
Конференция "Базы" » OnUpdateRecord в IBDataSet [D5]
Есть новые Нет новых   [134432   +19][b:0][p:0]