Transação ADO com duas Querys
Boas! Sou novato em programação e estou com dificuldades em salvar regsitros em 02 querys.
Tenho uma tabela chamada funcionarios e outra telefones.
Quando eu dou um insert e preencho os dados quero que salve a informação das duas querys, mas ele só salva da master.
As duas estão como ltBatchOptimistic e o DataSource da detalhe está linkado com a master e o código é este:
//Para um Post
procedure TForm1.aPostExecute(Sender: TObject);
begin
try
dmMain.qFuncionarios.Post;
dmMain.qFuncionarios.UpdateBatch();
dmMain.qTelefones.UpdateBatch();
dmMain.acMain.CommitTrans;
except
dmMain.acMain.RollbackTrans;
end;
end;
//Para um Edit
procedure TForm1.aEditExecute(Sender: TObject);
begin
dmMain.acMain.BeginTrans;
dmMain.qFuncionarios.Edit;
dmMain.qTelefones.Edit;
end;
//Para um Insert
procedure TForm1.aNewExecute(Sender: TObject);
begin
dmMain.acMain.BeginTrans;
dmMain.qFuncionarios.Insert;
dmMain.qTelefones.Insert;
end;
//BeforeEdit e BeforeInsert da qTelefones
if qFuncionarios.State = dsInsert then qFuncionarios.Post;
if qFuncionarios.State = dsBrowse then qFuncionarios.Edit
Onde está o erro? O que falta?
Agradeço antecipadamente!
Tenho uma tabela chamada funcionarios e outra telefones.
Quando eu dou um insert e preencho os dados quero que salve a informação das duas querys, mas ele só salva da master.
As duas estão como ltBatchOptimistic e o DataSource da detalhe está linkado com a master e o código é este:
//Para um Post
procedure TForm1.aPostExecute(Sender: TObject);
begin
try
dmMain.qFuncionarios.Post;
dmMain.qFuncionarios.UpdateBatch();
dmMain.qTelefones.UpdateBatch();
dmMain.acMain.CommitTrans;
except
dmMain.acMain.RollbackTrans;
end;
end;
//Para um Edit
procedure TForm1.aEditExecute(Sender: TObject);
begin
dmMain.acMain.BeginTrans;
dmMain.qFuncionarios.Edit;
dmMain.qTelefones.Edit;
end;
//Para um Insert
procedure TForm1.aNewExecute(Sender: TObject);
begin
dmMain.acMain.BeginTrans;
dmMain.qFuncionarios.Insert;
dmMain.qTelefones.Insert;
end;
//BeforeEdit e BeforeInsert da qTelefones
if qFuncionarios.State = dsInsert then qFuncionarios.Post;
if qFuncionarios.State = dsBrowse then qFuncionarios.Edit
Onde está o erro? O que falta?
Agradeço antecipadamente!
Gcm3102
Curtidas 0