Fórum Como obter o valor de um Generator #40879

12/12/2003

0

Eu gostaria de saber como posso obter o valor de
um determinado [b:40e2bf0a25]GENERATOR[/b:40e2bf0a25][/b]


Fabio-ps

Fabio-ps

Responder

Posts

12/12/2003

Afarias

function TFormx.GetNewID(const AGenerator: string): Integer; 
const 
  SQLText = ´select gen_id(¬s, 1) from rdb$database´; 
begin 
  with IBSQL1 do 
  begin 
    SQL.Text := Format(SQLText, [AGenerator]); 
    Transaction.StartTransaction; 
    try 
      ExecQuery; 
      Result := Fields[0].AsInteger; 
    finally 
      Transaction.Commit; 
    end; 
  end; 
end; 



...faça uma pesquisa no fórum pela palavra GENERATOR...


T+


Responder

Gostei + 0

14/06/2004

Aersoftware

Uma pequena dúvida em cima disso.. onde exatamente eu coloco esse código?? :?:



Allan Elias Ramos :?:


Responder

Gostei + 0

15/06/2004

Afarias

vc poderá usar a função acima em diversos lugares do seu código. 2 lugares ´preferidos´ são no evendo BeforePost e OnNewRecord do DataSet (Query, etc...)


ex::

DataSet.FieldByName(´nome_campo´).AsInteger := GetNewID(´nome_do_generator´);



T+


Responder

Gostei + 0

15/06/2004

Aersoftware

Valeu afarias,

Só estou com mais uma pequena dúvida.. essa function tem q ser declarada? eu nunca fiz uma.. eu sei fazer procedures...

eu declaro la em cima como ´procedure teste´ por exemplo, em cima dele clico em ´Crtl + Shift + C´ e ele me abre pra bota o código.. é a mesma coisa com a function???



Allan Elias Ramos :roll:


Responder

Gostei + 0

15/06/2004

Gandalf.nho

Tente esse componente, serve justamente para recuperar o valor de um generator: [url]www.ceres-software.com/files/ibgen.zip[/url]


Responder

Gostei + 0

15/06/2004

Afarias

eu declaro la em cima como ´procedure teste´ por exemplo, em cima dele clico em ´Crtl + Shift + C´ e ele me abre pra bota o código.. é a mesma coisa com a function???


a mesma coisa! funções e procedimentos (métodos já q estamos falando de classes) são a mesma coisa. a única diferença é q uma função tem um ´valor associado´.

pra declarar a função::

function NomeDaFunção( ** lista de parâmetros ** ): TipoDeRetorno;



T+


Responder

Gostei + 0

15/06/2004

Aersoftware

Tente esse componente, serve justamente para recuperar o valor de um generator: [url]www.ceres-software.com/files/ibgen.zip[/url]


Gandalf, o arquivo nao abre, nao dá erro na página, como se ela nao existisse.. :cry:



Allan Elias Ramos :roll:


Responder

Gostei + 0

16/06/2004

Rodrrs

É SIMPLES

select gen_id(nomedogenerator,0) from rdb$database

colocando o nome do generator vc ja tem o valor dele e 0 para
ele nao incrementar nada somente para vc ter o valor dele.

rodrigo-regis@uol.com.br


Responder

Gostei + 0

20/06/2004

Aersoftware

RODRRS, onde eu coloco esse código? E pra colocar ele eu preciso dakele outro maior la em cima?

Tentei colocar esse select no BeforePost do TClientDataSet e me deu o seguinte erro na hora de compilar:


[Error] UDmDados1.pas(48): Undeclared identifier: ´select´
[Error] UDmDados1.pas(48): Undeclared identifier: ´gen_grupos_id´
[Error] UDmDados1.pas(48): Missing operator or semicolon
[Error] UDmDados1.pas(48): Missing operator or semicolon
[Fatal Error] ProjTeste.dpr(7): Could not compile used unit ´UDmDados1.pas´




Allan Elias Ramos :cry:


Responder

Gostei + 0

14/07/2004

Aersoftware

Dei um tempo na programação do meu software, mas agora estou voltando.. ainda nao consegui arrumar o erro q ta dando no post acima, alguém sabe o q pode ser? grato..



Allan Elias Ramos


Responder

Gostei + 0

14/07/2004

Beppe

Ae, conterrâneo, o Delphi não permite SQL embarcado nos fontes. Vc insere ele no IBSQL, como o primeiro post do afarias mostra. :wink:


Responder

Gostei + 0

15/07/2004

Aersoftware

Ae, conterrâneo, o Delphi não permite SQL embarcado nos fontes. Vc insere ele no IBSQL, como o primeiro post do afarias mostra. :wink:


Hmmm.. agora ja clareou um pokinho.. ja sei onde não colocar.. hehe.. mas ainda continuo em dúvida de onde colocar, já q nesse mesmo post tem duas resposta diferentes.. uma com uma function q é complexa e outra somente com o select.. qual das duas eu uso no evento BeforePost??

Não sei pq eu emperrei nessa e não consigo sair nem da etapa inicial... :cry:



Allan Elias Ramos :cry:


Responder

Gostei + 0

15/07/2004

Vinicius2k

Se eu estivesse na sua posição, utilizaria a função do afarias que é genérica e vai lhe servir por toda a aplicação, não necessitando de implentar toda a rotina várias vezes...

T+


Responder

Gostei + 0

15/07/2004

Aersoftware

Ceeerto.. agora estou me encontrando.. hehe.. mas, onde eu coloco ela? como eu declaro? (Nunca me dei bem com Functions).. eu preciso ´ativar´ ela nos forms ou em algum componente q vou precisar dela?? :?:



Allan Elias Ramos :roll:


Responder

Gostei + 0

21/07/2004

Aersoftware

Pessoal, por incrível q pareça eu consegui obter o valor do gerador, mas ainda preciso de uma ajuda.. o q esta acontecendo é o seguinte..

Tá, eu insiro os registros e ele nao me aparece os códigos, q foi feito pra ser auto-numeração.. mas o gerador e a trigger funcionam.. quando eu fecho a aplicação e abro ela novamente, ele me lista os registros ja com os devidos códigos... bom, os códigos estao aparecendo como eu keria, mas só se eu reiniciar a aplicaçao.. tem como eu fazer eles aparecer sem precisar reiniciar? tem algum jeito de dar um refresh em algum componente ou algo do tipo?? to usando FB 1.5 e lingando pelo DbExpress... :wink:



Allan Elias Ramos :roll:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar