Fórum Auto Numeração #172327

30/07/2003

0

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

Responder

Posts

04/08/2003

Garoto Programa

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.


Responder

Gostei + 0

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

Aceitar