Показать сообщение отдельно
  #6  
Старый 04.04.2014, 17:37
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Вобщем, извините, но разбираться нет времени(((
Скажите, так правильно оформлять:
Код:
try
  dm.PROTO_Connection.BeginTrans;

    if query_open(false, ADOQuery_Slut, 'INSERT INTO klients.klients ' +
    '(поля) VALUES (значения)', 'Ошибка подключения к БД!') = false then
      exit;

    if query_open(true, ADOQuery_Slut, 'SELECT LAST_INSERT_ID() FROM klients.klients',
    'Ошибка подключения к БД!') = false then exit;
    IdKlient:=ADOQuery_Slut.FieldByName('last_insert_id()').AsString;

    if query_open(false, ADOQuery_Slut, 'INSERT INTO proto.sc_zn ' +
    '(поля) VALUES (значения)', 'Ошибка подключения к БД!') = false then exit;

  dm.PROTO_Connection.CommitTrans;
  except
    dm.PROTO_Connection.RollbackTrans;
    exit;
  end;

...

function query_open(for_select: Boolean; querik: tadoquery; zapros, err_msg: string): boolean; // возвращает True, если запрос выполнился
begin
  Result:= true;
  querik.Close;
  Querik.SQL.text:=zapros;
  try
    if for_select = true then Querik.open
    else querik.ExecSQL;
  except
    on E : Exception do
    begin
      screen.Cursor:=crDefault; 
      messageDlg(err_msg + #13 + #13 + '[' + E.Message + ']', mtError, [mbOK], 0);
      querik.Close;
      Result:= false;
    end;
  end;
end;
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием