Fórum Pegar generator com query dbexpress #345428
02/09/2007
0
estou fazendo
with query1 do begin
close;
sql.clear;
sql.add(´select gen_id(nomedogenerator,0) from rdb$database´)
open;
end;
showmessage(query1.fields[0].asstring);
Esta retornando um ?
Alguem já fez isso?
Rinez
Curtir tópico
+ 0Posts
02/09/2007
Wendell
voce deve colocar o numero 1 para executar a função GEN_ID que se refere ao número que será incrementado no generator
Gostei + 0
03/09/2007
Rinez
Fiz como explicou, mas ao inves de trazer o valor do generator ele aumenta 1 no generador que esta no banco.
Eu quero somente saber o valor do generator.
Fiz dessa forma:
WITH QPROCURA DO BEGIN
CLOSE;
SQL.Clear;
SQL.Add(´select GEN_ID(´+TRIM(COMBOBOX3.TEXT)+´,0) AS QUANT from RDB$DATABASE´);
OPEN;
end;
showmessage(´O generator ´+trim(combobox3.text+
´ Tem valor ´+qprocura.FieldBYNAME(´QUANT´).AsString);
No combobox3.text tenho o nome do generator.
As vezes vem o valor correto outras vezes vem um sinal de =
sabes o porque disso?
Gostei + 0
06/09/2007
Rinez
Gostei + 0
06/09/2007
Joaoshi
Espero ter ajudado.
Gostei + 0
12/09/2007
Rinez
Desculpe, que dll cliente é essa? Explique melhor.
Agradeço a gentileza.
Gostei + 0
12/09/2007
Paullsoftware
function NewGen(GenName: String; aConexao:TSQLConnection): integer; var ResultSet: TCustomSQLDataSet; SQLstmt: string; begin SQLStmt := ´SELECT CAST(gen_id(´ + GenName + ´,1)as integer) as NewValor from RDB$DATABASE;´; ResultSet := nil; try aConexao.Execute(SQLstmt, nil, @ResultSet); if Assigned(ResultSet) then begin Result := ResultSet.FieldByName(´NewValor´).AsInteger; end; finally ResultSet.Free; end; end; (* NewGen *)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)