[firebase-br] Problema com Generator

Valdir Dill valdirdill em infolivre.com.br
Seg Out 17 13:49:06 -03 2005


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, mas, às vezes, a função retorna o 49, mas no banco fica gravado o 48. Aí quando vou pegar executo novametne a função vai retornar novamente o 49.
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.



Mais detalhes sobre a lista de discussão lista