Показать сообщение отдельно
  #1  
Старый 10.09.2013, 20:00
sAVe sAVe вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 40
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Последовательное выполнение запросов

Вот такая вот проблемка:
Нужно чтоб в поле P_CL_ID попадал только что созданный CL_ID

Код:
procedure TNew_Person.Button1Click(Sender: TObject);
var
Cl_idg : integer;

begin
with DataModule1.IBQuery9 do
begin
SQL.Text:='insert into CLIENT (CL_ID, CL_IS_VIP, CL_CLS_ID, CL_CREDIT_NUM) values (gen_id(GEN_CLIENT_ID,1), :CL_IS_VIP, :CL_CLS_ID, :CL_CREDIT_NUM)';
ParamByName('CL_IS_VIP').AsInteger:=0;
ParamByName('CL_CLS_ID').AsInteger:=0;
ParamByName('CL_CREDIT_NUM').AsInteger:=0;

Cl_idg:=DataModule1.CLIENT.FieldByName('CL_ID').AsInteger; // ВОТ ТУТ Я ЧТО-ТО НЕ ТАК ДЕЛАЮ, А ЧТО ПОНЯТЬ НЕ МОГУ...

with DataModule1.IBQuery7 do
begin
SQL.Text:='insert into PERSON (P_ID, P_NAME, P_BIRTHDATE, P_CL_ID) values (:P_ID, :P_NAME, :P_BIRTHDATE, :P_CL_ID)';
ParamByName('P_NAME').AsString:=Edit1.Text;
ParamByName('P_BIRTHDATE').AsString:=Edit2.Text;
ParamByName('P_CL_ID').AsInteger:=Cl_idg;
Transaction.StartTransaction;
ExecSQL;
Transaction.Commit;
Transaction.Active:=false;

end;
end;
Ответить с цитированием