По-прежнему появляется всплывающее окно с ошибкой, даже если ApplyUpdates находится внутри try… кроме

Решение найдено, см. мой комментарий ниже

D5, odbc к базе данных mysql

Этот код:

  with QryCmdPerf do begin
    Close;
    ParamByName('ACCTID').AsInteger:= AcctId;
    ParamByName('FROMDT').AsString:= MySQLDate(FromDt);
    ParamByName('TODT').AsString:= MySQLDate(ToDt);
    Open;
    first;
    try
      edit;
      FieldByName('PnL').AsFloat:= 97979;
      ApplyUpdates;
    except
      close;
    end;
  end;    // with

(в частности, «ApplyUpdates») вызывает появление всплывающего окна с текстом «Ошибка обновления», если в поле PnL уже есть значение 97979 , видимо из-за этого кода:

procedure TUpdateSQL.ExecSQL(UpdateKind: TUpdateKind);
begin
  with Query[UpdateKind] do
  begin
    Prepare;
    ExecSQL;
    if RowsAffected <> 1 then DatabaseError(SUpdateFailed);
  end;
end;

в DBTables.pas. В любом случае, я хочу иметь возможность запускать ApplyUpdates и не беспокоиться о всплывающем окне, если оно не выполняет никаких обновлений. Но если "попробовать ... кроме" не работает, что будет?

TIA

5
задан davej 20 April 2011 в 20:10
поделиться