Autoincremento confiavel com SQL alguem sabe?

28/04/2003

0

Pessaol vc´s sabem como eu faco uma instrucao SQL autoincremental confiavel onde, se um usuario abrir o sistema duas vezes ou mais na mesma maquina, ao inserir um registro o sistema nao duplique.

Obs: O usuario ainda nao gravou gando abrir pela segunda vez o mesmo sistema!


Rodrigo Ferreira

Rodrigo Ferreira

Responder

Posts

28/04/2003

Schumacher

Rodrigo,

Certa vez precisei de algo semelhante e criei esta função:

function ProximoCodigoStr(psTabela, psChave: String;
psFormato, psDataBase, psSessionName: String) : String;
var lsStringSQL: String;
begin
lsStringSQL:= ´SELECT MAX(´+psChave+´) as Chave FROM ´+psTabela;
with TQuery.Create(nil) do
try
DataBaseName:= psDataBase;
SessionName := psSessionName;
SQL.Text := lsStringSQL;
Open;
if FieldByName(´Chave´).IsNull then
Result := FormatFloat(psFormato, 1)
else
Result := FormatFloat(psFormato, FieldByName(´Chave´).AsFloat + 1);
finally
Close;
Free;
end;
end;

Um exemplo de uso desta função, ao clicar no botão novo registro:

tblINClientes.FieldByName(´CliCodigo´).AsString :=
ProximoCodigoStr(´CliClientes´,´CliCodigo´,´00´,´NomedaSessao´,´NomedaBasedeDados´);

_________________
Marcelo Schumacher


Responder

28/04/2003

Rodrigo Ferreira

Rodrigo, Certa vez precisei de algo semelhante e criei esta função: function ProximoCodigoStr(psTabela, psChave: String; psFormato, psDataBase, psSessionName: String) : String; var lsStringSQL: String; begin lsStringSQL:= ´SELECT MAX(´+psChave+´) as Chave FROM ´+psTabela; with TQuery.Create(nil) do try DataBaseName:= psDataBase; SessionName := psSessionName; SQL.Text := lsStringSQL; Open; if FieldByName(´Chave´).IsNull then Result := FormatFloat(psFormato, 1) else Result := FormatFloat(psFormato, FieldByName(´Chave´).AsFloat + 1); finally Close; Free; end; end; Um exemplo de uso desta função, ao clicar no botão novo registro: tblINClientes.FieldByName(´CliCodigo´).AsString := ProximoCodigoStr(´CliClientes´,´CliCodigo´,´00´,´NomedaSessao´,´NomedaBasedeDados´); _________________ Marcelo Schumacher




Obrigado amigo pela ajuda :wink:


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar