Pegar generator com query dbexpress
Como pegar o valor do generador com query do dbexpress?
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?
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
Curtidas 0
Respostas
Wendell
02/09/2007
sql.add(´select gen_id(nomedogenerator,[b:f272ba5a81]1[/b:f272ba5a81]) from rdb$database´)
voce deve colocar o numero 1 para executar a função GEN_ID que se refere ao número que será incrementado no generator
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
Rinez
02/09/2007
Prezado wendell:
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?
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
Rinez
02/09/2007
up
GOSTEI 0
Joaoshi
02/09/2007
Colega, você colocou a [b:b3813a3d83]DLL[/b:b3813a3d83] cliente do banco de dados no [b:b3813a3d83]USES[/b:b3813a3d83] do seu form? Se colocou tire e teste.
Espero ter ajudado.
Espero ter ajudado.
GOSTEI 0
Rinez
02/09/2007
Prezado Joaoshi:
Desculpe, que dll cliente é essa? Explique melhor.
Agradeço a gentileza.
Desculpe, que dll cliente é essa? Explique melhor.
Agradeço a gentileza.
GOSTEI 0
Paullsoftware
02/09/2007
amigo eu uso essa rotina para disparar o gerador... funciona perfeitamente! 8)
espero ter ajudado :wink:
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