Fórum Repetir campos conforme pedido #298046
01/10/2005
0
Bom, uso firebird, palheta interbase, usando querys.
Obrigado
Iniciante12345
Curtir tópico
+ 0Posts
01/10/2005
Beppe
for I := 1 to Quantidade - 1 do begin INSERT INTO Cadastro SELECT * FROM Cadastro WHERE Codigo = gen_id(Gerador, 0) end;
Assumindo que Cadastro possui uma trigger after insert que sempre seta o campo Codigo = gen_id(Gerador, 1);
Gostei + 0
19/10/2005
Iniciante12345
INSERT INTO Cadastro
SELECT * FROM Cadastro WHERE Codigo = gen_id(Gerador, 0)
Onde tenho que usar esse código que me passaram? Há outra forma de fazer o que quero? Por favor, me ajudem com os passos certos.
Agradeço.
Gostei + 0
19/10/2005
Bruno Belchior
Gostei + 0
20/10/2005
Iniciante12345
Obrigado. Grato.
Gostei + 0
22/10/2005
Beppe
set term ^ ; create generator GEN_Cadastro ^ create trigger TRG_CadastroAfterInsert for Cadastro as begin new.Codigo = gen_id(GEN_Cadastro, 1); end;
Insira isto no seu programa:
Query.SQL.Text := ´select gen_id(GEN_Cadastro, 0) from RDB$DATABASE´; Query.Open; ID := Query.Fields[0].AsInteger; Query.Close; Query.SQL.Text := ´INSERT INTO Cadastro SELECT * FROM Cadastro WHERE Codigo = ´ + IntToStr(ID); for I := 1 to Quantidade - 1 do Query.ExecSQL;
Depois de escrever isto, pensei ser mais interessante usar uma tabela de ´lançamento´ para facilitar o processo. Mas tente isto e repasse seus resultados.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)