[firebase-br] GEN_ID x dbExpress - RESOLVIDO

Álvaro Vieira arcoverdeneto em yahoo.com.br
Ter Dez 14 16:14:42 -03 2004


Álvaro Vieira wrote:
> Pessoal,
> 
> Tentei usar a função abaixo para me retornar o próximo valor de um 
> GENERATOR, mas não está funcionando.
> 
> Uso: Delphi 6 / Firebird 1.5 / dbExpress
> 
> 01 function TDataMod.GetNextID : Integer;
> 02 var
> 03   qry : TSQLQuery;
> 04 begin
> 05   qry := TSQLQuery.Create(nil);
> 06   qry.SQLConnection := DataMod.DB;
> 07   qry.SQL.Text := 'select gen_id(GN_GERAL, 1) from rdb$database';
> 08   qry.Open;
> 09   Result := qry.Fields[0].AsInteger;
> 10   qry.Close;
> 11   FreeAndNil(qry);
> 12 end;
> 
> Na linha 12, apresenta a mensagem: "... EConvertError with message 
> "6029=' is not a valid floating point value'".
> 
> Alguém pode me passar alguma dica? Será incompatibilidade do dbExpress 
> com o Firebird???
> 

Resolvi o problema adicionando a função CAST ao comando sql.
Ficou assim:
'select cast(gen_id(GN_GERAL, 1) as integer) from rdb$database'

Obrigado à todos que enviaram dicas.

Álvaro Vieira.




Mais detalhes sobre a lista de discussão lista