Re: [firebase-br] Erro Aleatório em Generator

Marcone Peres marcone_fb em yahoo.com.br
Ter Set 20 09:35:26 -03 2005


Valdir nao sei se entendi bem seu problema, mas lá vai...
Acho que vc está tentando fazer uma geração de código automática certo? Se este for o caso vc pode fazer isso diretamente no banco, criando uma trigger para gerar automaticamente o código. Mais ou menos assim:
 
Create trigger <ColoqueUmNomeAqui> For <NomeDaTabela> Active before insert posiction 0
as
begin
  new.<CampoCodigoAutomatico> = Gen_Id(<SeuGenerator>, 1);
end;
 
Pronto só alegria!! Acho que resolvi! Há, pode retirar a função no delphi, deixe que a trigger resolve a parada para vc.
 
qq coisa fale diretamente comigo: marcone_fb em yahoo.com.br
Obs.: Não sei ao certo se a sintaxe da trigger está correta, mas é mais ou menos por aí!!
Valeuuuuuuuuuuuu.

Valdir Dill <valdirdill em infolivre.com.br> escreveu:

Tenho a seguinto função para incrementar o nr do generator:

"
function NovoCodigoGenerator : Integer;
begin
SQLQuery.Close;
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add('SELECT Cast(GEN_ID(MeuGenerator,1) as Integer)as VNumero 
FROM RDB$DATABASE');
SQLQuery.Open;
Result := SQLQuery.Fields[0].AsInteger;
SQLQuery.Close;
end;
"
Essa função funciona bem. O problema é que, às vezes a função retorna o novo 
número do generator, mas não grava isso no banco de dados.
Por exemplo: o nr do generator atual é 48. Ao executar a função deveria 
retornar e gravar o nr 49. Na maioria das vezes é isso que acontece, ou 
seja, faz certinho.
Quando ocorre o erro não é comigo, é com usuários. Por isso não consigo 
debugar. E só acontece muito raramente.
Será que alguém tem alguma idéia do que poderia estar causando essa falha?

Obrigado.




______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 


Mais detalhes sobre a lista de discussão lista