Como saber o código Generator após o insert ?
15/12/2005
0
Uilizo FB 1.5
Tenho uma tela com uma query.
Esta query tem um insert:
INSERT INTO PEDIDO (CD_CLIENTE,DATA,HORA) VALUES (:CD_CLIENTE,:DATA,:HORA)
a tabela PEDIDO tem uma chave primária CODIGO que é preenchida através de um genenrator:
Após executar o seguinte código, preciso exibir num Edit o valor que o campo CODIGO recebeu, [b:c621e072b1]como ?[/b:c621e072b1]
with QPedido do begin close; parambyname(´cd_cliente´).AsInteger := EdtCdCliente.Value; parambyname(´data´).AsDate := EdtData.Value; parambyname(´hora´).AsTime := EdtHora.Value; execsql; end;
obs.: tenho vários micros na rede executando essa operação ao mesmo tempo.
obrigado
Diogo
Diogoalles
Post mais votado
15/12/2005
mas é isso que não sei fazer...
tenho a procedure q tem o código acima que executa a QPedido.
após dar o execsql e ter inserido o registro preciso deste código que foi gerado...
precisa saber como identificá-lo.
obrigado
Diogo
Diogoalles
Mais Posts
15/12/2005
Edilcimar
15/12/2005
Edilcimar
Begin
Close;
SQL.Clear;
SQL.Add(´Select gen_id(NOMEGERADOR_GEN, 1) from RDB$DATABASE´);
IBQuery1.Open;
NumerpDesejado := IBQuery1.Fields[0].AsInteger;
End;
Coloque isto depois do append e antes do post, o fields[0] é pq é o 1° campo
15/12/2005
William Thiago
A solução que eu encontrei foi a seguinte. Utiliza a SPO para pegar o valor do generator.
COD = GEN_ID(nomedogenerator,1)
INSERT INTO blablabla (cod, nome, ...) VALUES (COD, ´OI EU SOU FULANO´, ...)
E faça o retorno da procedure, pra pegar no Delphi...
Não me lembro muito bem da sintaxe, há muito não programo no FB/IB. Mas, ta dada a dica ;)
[]´s
15/12/2005
Diogoalles
não utilizo trigger de BI.
Vou ver se consigo..
obrigado !
15/12/2005
Technos
Dá uma sacada nesse código:
...
select gen_id(SOMA_CONTAGEM, 1) as Cod from rdb$database
...
cria uma variavel global por exemplo, e faz isso:
minhavariavel := query.fieldbyname(´COD´).value
é mais ou menos assim, só pra ter uma ideia do que fazer.
Falowww
Clique aqui para fazer login e interagir na Comunidade :)