restorno de generator
23/12/2004
0
Estive pesquisando no forum e não encontrei algum problema semelhante a este.
Estou usando um generator para criar um numero sequencial que preciso utilizar no meu programa, não posso usar trigger porque preciso do numero antes da inclusão, estou usando componentes dbExpress.
Quando executo os comandos abixo:
select gen_id(g_log,1) from rdb$database
numlog:=SQLLog.Fields[0].AsInteger;
da um erro dizendo que o valor que veio do generator não é numerico, e realmente voce olhando o campo que veio tem caracteres estranhos.
Quando o valor do generator está entre 10 e 99 ele funciona bem fora isso não vai.
Estou usando um generator para criar um numero sequencial que preciso utilizar no meu programa, não posso usar trigger porque preciso do numero antes da inclusão, estou usando componentes dbExpress.
Quando executo os comandos abixo:
select gen_id(g_log,1) from rdb$database
numlog:=SQLLog.Fields[0].AsInteger;
da um erro dizendo que o valor que veio do generator não é numerico, e realmente voce olhando o campo que veio tem caracteres estranhos.
Quando o valor do generator está entre 10 e 99 ele funciona bem fora isso não vai.
![Apf56 Apf56](https://www.devmedia.com.br/imagens/fotoscolunistas/avatar/avatar-6.png)
Apf56
Curtir tópico
+ 0
Responder
Posts
24/12/2004
Fsflorencio
Amigo, isto me parece algum problema com os componentes de acesso. Não deve ter problema no seu banco de Dados. Experimente utilizar outro tipo de componente e tente variar o método de acesso à informação para chegar a uma conclusão. Faça testes pelo ibconsole também e se tiver mais alguma pista fala pra nós podermos ajudar.
Responder
06/01/2005
Max.jgs
Esse exemplo pega o valor de uma StoredProc....
rocedure TForm1.Button1Click(Sender: TObject);
begin
IBTransaction1.StartTransaction;
if not IBStoredProc1.Prepared then
IBStoredProc1.Prepare;
IBStoredProc1.ExecProc;
Edit1.Text := IntToStr(IBStoredProc1.ParamByName(
´ATUAL´).AsInteger);
IBTransaction1.Commit;
end;
rocedure TForm1.Button1Click(Sender: TObject);
begin
IBTransaction1.StartTransaction;
if not IBStoredProc1.Prepared then
IBStoredProc1.Prepare;
IBStoredProc1.ExecProc;
Edit1.Text := IntToStr(IBStoredProc1.ParamByName(
´ATUAL´).AsInteger);
IBTransaction1.Commit;
end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)