Buscar

Função autoinc com zeros na frente para campos de codigo formato string

Código

Esta função foi testada apenas com ADOQuery e o resultado dá uma string

function AutoNum(Conexao:TADOConnection;Tabela,Campo:string;NCasas:integer):string;
Var
c,z:integer;
Tab,QAutoNum:TADOQuery;
str:string;
Begin
Tab:= TADOQuery.Create(QAutoNum);
Tab.Connection:= Conexao;
Tab.Close;
Tab.SQL.Clear;
Tab.SQL.Add('Select * from '+Tabela+' Order by '+Campo);
Tab.Open;
Tab.Last;

If Tab.IsEmpty then
Begin
c:=1;
end
else
Begin
c:= Tab.FieldValues[Campo]+1;
end;
Tab.Close;

z:=1;
While (NCasas > z) do
Begin
str:='0'+str;
z:= z+1;
end;

Result:= str+IntToStr(c);
end;

Para utilizar:
Var
n:string;
Begin
n:= AutoNum(ADOConnection1,'Clientes','Codigo',5); // Onde "ADOConnetction1" é o nome do TADOConnection que a query é ligada;
//"Clientes" é o nome da tabela no banco de dados;
//"Codigo" é o nome do campo da tabela que será incrementado;
//"5" é o número de casas que irá possuir o campo, no exemplo aprecia "00001", caso fosse 4 ficaria "0001" e assim por diante;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 06/05/07
Por: Aluisio Martins Junior
Visualizada: 3574 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009