Como saber o código Generator após o insert ?
Pessoal
Uilizo FB 1.5
Tenho uma tela com uma query.
Esta query tem um insert:
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]
obs.: tenho vários micros na rede executando essa operação ao mesmo tempo.
obrigado
Diogo
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
Curtidas 0
Melhor post
Diogoalles
15/12/2005
certo...
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
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
GOSTEI 1
Mais Respostas
Edilcimar
15/12/2005
após o append ou insert, pegue o valor do generator e jogue dentro de uma variável, aí vc faz o que quiser
GOSTEI 0
Edilcimar
15/12/2005
With IBQuery1 do
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
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
GOSTEI 0
William Thiago
15/12/2005
Você preenche o codigo com uma trigger BI?
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
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
GOSTEI 0
Diogoalles
15/12/2005
UHMM.. Blz...
não utilizo trigger de BI.
Vou ver se consigo..
obrigado !
não utilizo trigger de BI.
Vou ver se consigo..
obrigado !
GOSTEI 0
Technos
15/12/2005
Aew diogo...
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
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
GOSTEI 0