como uma variavel := o generetor

Firebird

25/02/2005

Caros colegas

Estou iniciando agora com o interbase, como eu faço para uma variavel receber o valor do generator.

O meu problema é que quando o meu cliente entra na tela de vendas ele quer ir para a ultima venda, abrindo o db e dando um Last dá certo mais é lento se eu souber o nº do generator e posso dar um select

obrigado


Odlave

Odlave

Curtidas 0

Respostas

Delphi32

Delphi32

25/02/2005

para pegar o valor atual de um generator use a seguinte SQL:

SELECT GEN_ID(NOME_DO_GENERATOR,0) FROM RDB$DATABASE


Acho que deve ter um jeito mais fácil de consultar o banco de dados pelo valor do generator, mas eu mesmo não sei.

Espero ter ajudado de alguma forma! Até!


GOSTEI 0
Odlave

Odlave

25/02/2005

obrigado pela ajuda
Mais este codigo eu usei a cada select aumenta o numero do generator

o generator ex: é 90
DM.TQGeral.SQL.Add(´SELECT GEN_ID(COMPRAS1_NLANC_GEN,1) FROM RDB$DATABASE´);

DM.TBCompras1.SQL.Add(´select * from compras1 where nlanc = ´+DM.TQGeral.Fields[0].asString+´´);


o generator ex: é 91
se alguem tiver mais alguma solução
ogrigado


GOSTEI 0
Afarias

Afarias

25/02/2005

dê mais uma olhada no código q o delphi32 postou:

SELECT GEN_ID(NOME_DO_GENERATOR, [color=red:eb1adf2a58][size=18:eb1adf2a58][b:eb1adf2a58]0[/b:eb1adf2a58][/size:eb1adf2a58][/color:eb1adf2a58]) FROM RDB$DATABASE


quando vc usa 0 (zero) vc obtem o valor atual do generator, e não ele + 1


T+


GOSTEI 0
Delphi32

Delphi32

25/02/2005

Não entendi direito. Você diz que esse código não funciona porque incrementa o generator? Se for isso, repare que depois do nome do generator você deve passar o parametro ´0´ ao invés de ´1´ no seu código.

O segundo parâmetro da função GEN_ID indica quanto deve ser incrementado do generator, logo, se você passar zero ele vai retornar o valor atual do generator.

Até!


GOSTEI 0
POSTAR