Fórum Campo código como inteiro #185953
02/10/2003
0
Olá pessoal, tenho a seguinte duvida:
Define um campo chave Codcli como inteiro, a cada nova inserção tenho que definir Codcli:= Codcli+1 ...............?????????????
ou estou viajando?
Mesma coisa qdo vou excluir Codcli:= Codcli-1......??????????
Ou seja por exemplo tenho cliente 1,2,3 se eu exluir o 2 como faço para que o proximo cadastro ocupe a posição 2 ao invés da 4 posição?
Define um campo chave Codcli como inteiro, a cada nova inserção tenho que definir Codcli:= Codcli+1 ...............?????????????
ou estou viajando?
Mesma coisa qdo vou excluir Codcli:= Codcli-1......??????????
Ou seja por exemplo tenho cliente 1,2,3 se eu exluir o 2 como faço para que o proximo cadastro ocupe a posição 2 ao invés da 4 posição?
Rmeneghel
Curtir tópico
+ 0
Responder
Posts
02/10/2003
Mmtoor
Utilize autoincremento, idependente do BD.
Responder
Gostei + 0
03/10/2003
Luizfernando777
Caro Colega
Pode-se usar o auto incremento,
mas pelo que noto ele quer reutilizar o número excluido
neste caso não daria,
vc pode fazer o seguinte,
eis a rotina
function TDM.GeraCodigo( Tabela: String; Campo:String ):Integer;
var
Codigo : Integer;
begin
Codigo := 1;
// qCodigo é uma Query
with qCodigo do
begin
Close;
SQL.Clear;
SQL.Add(´ Select * From ´ + Tabela );
SQL.Add(´ Order by ´+ Campo );
Prepare;
Open;
if RecordCount <> 0 then
begin
First;
while not Eof do
begin
if FieldByName(Campo).Value <> Codigo then
break
else
begin
inc(codigo);
Next;
end;
end;
end;
Close;
end;
Result := Codigo;
end;
Pode-se usar o auto incremento,
mas pelo que noto ele quer reutilizar o número excluido
neste caso não daria,
vc pode fazer o seguinte,
eis a rotina
function TDM.GeraCodigo( Tabela: String; Campo:String ):Integer;
var
Codigo : Integer;
begin
Codigo := 1;
// qCodigo é uma Query
with qCodigo do
begin
Close;
SQL.Clear;
SQL.Add(´ Select * From ´ + Tabela );
SQL.Add(´ Order by ´+ Campo );
Prepare;
Open;
if RecordCount <> 0 then
begin
First;
while not Eof do
begin
if FieldByName(Campo).Value <> Codigo then
break
else
begin
inc(codigo);
Next;
end;
end;
end;
Close;
end;
Result := Codigo;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)