Auto Numeração

Delphi

30/07/2003

Estou fazendo um cadastro em delphi e estou usando uma tabela DBase(*.dbf) e gostaria que o campo Cod Cliente fosse autonumeração.como Fazer?


Xadriano

Xadriano

Curtidas 0

Respostas

Garoto Programa

Garoto Programa

30/07/2003

Prezado,

Não conheço uma forma automatica de auto numerar um campo, neste caso aconselho que você faça isto manualmente.

Ai esta uma função que desenvolvi para dar sequencia a uma numeração.
:P

Function ProximoNum(sCampo, sCondicao, sTabela, sAlias: String; Self: TComponent):Integer;
//Retorna o Próximo numero de uma sequencia com base no maior numero encontrado
//Pode ser utilizado uma condição seguindo o padrao SQL.
Var
QrySql: TQuery;
begin
With QrySql do
Begin
QrySql:= TQuery.Create(Self);
DatabaseName:= sAlias;
If Active then
Close;
Sql.Clear;
Sql.Add(´Select Max(´+sCampo+´)´);
Sql.Add(´From ´+sTabela);
If Trim(sCondicao) <> ´´ then
Sql.Add(´Where ´+sCondicao);
Open;
if Fields[0].IsNull then
result := 1
else
result := Fields[0].AsInteger + 1;
Close;
end;
end;

Como utiliza-la.

No envento AfterInsert de sua tabela coloque o seguinte.

With SuaTabela do
Begin
[b:4c3fc0d366]Caso seu campo sejá String[/b:4c3fc0d366]
FieldByName(´SeuCampo´).AsString := FormatFloat(´000000´,ProximoNum(SeuCampo´, ´SuaCondição´, ´SuaTabela´, ´SuaAlias´, Self));
[b:4c3fc0d366]Caso seu campo sejá Interge[/b:4c3fc0d366]
FieldByName(´SeuCampo´).AsInteger := ProximoNum(SeuCampo´, ´SuaCondição´, ´SuaTabela´, ´SuaAlias´, Self);

End;
[b:4c3fc0d366]Obs.:[/b:4c3fc0d366] A SuaCondição deve ser uma condição SQL valida para se inclusa no Where da linguagem SQL. Caso não se tenha condição é so não informar nada coloque apenas duas aspas simples [b:4c3fc0d366]´´[/b:4c3fc0d366]

Assim que você der um Insert na sua tabela ela vai gravar no seu campo o proximo numero da sequencia.

Que Deus lhe abençoe.


GOSTEI 0
POSTAR