[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