[firebase-br] RES: Auto Imcremento no FireBird e DB Express

Antonio Carlos a.lima.silva em terra.com.br
Ter Set 11 11:53:54 -03 2007


e qual o contexto de transação que vc usa explicitamente para fazer com que 
derrepente dois resultados iguais ocorram "se" simultaneamente for solicitao 
a geração desse codigo ?

----- Original Message ----- 
From: "Jorge Umberto" <niko em bruner.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Tuesday, September 11, 2007 10:50 AM
Subject: [firebase-br] RES: Auto Imcremento no FireBird e DB Express



Nos sistemas, usamos várias empresas e vários bancos. Então, fiz essa
função q resolve o nosso problema. Se ajudar no seu caso, aí está.
Detalhe, toda chave de nossas tabelas tem o nome "CODIGO".


function TModuloPrincipal.ObterGeradorEmp(tabela: string; empresa:
integer):integer;
var    SqlGerador : TSQlquery;
begin
  SqlGerador:= TSQlquery.Create(self);
  SqlGerador.SQLConnection := banco;
  with SqlGerador do
  begin
    Close;
    Sql.Clear;
    SQl.Add('SELECT MAX(CODIGO) FROM ' + tabela + ' WHERE CODEMP = ' +
IntToStr(empresa));
    Open;
    Result := Fields[0].AsInteger + 1;
  end;
  FreeAndNil(SqlGerador);

end;


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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


__________ Informação do NOD32 IMON 2521 (20070911) __________

Esta mensagem foi verificada pelo NOD32 sistema antivírus
http://www.eset.com.br






Mais detalhes sobre a lista de discussão lista