Вобщем, извините, но разбираться нет времени(((
Скажите, так правильно оформлять:
Код:
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;