AutoIcremento

Delphi

02/02/2003

Olá pessoal eu não tó sabendo com faço para zerar o campo do AutoIcremento quanto o usuario deletar todos os registros da tabela, parece ser facíl e se alguém poder me ajuda eu agradeço.


valeu !!!!!!!!!!!!!!


Anonymous

Anonymous

Curtidas 0

Respostas

Anonymous

Anonymous

02/02/2003

Por concidência, estava revendo a revista clubedelphi número 29 e achei essa função, escrita por Danilo, que pode zerar o campo autoincremento:

function ResetAutoInc(FileName:TFileName; Base: Longint): Boolean;
begin
with TFileStream.Create(FileName, fmOpenReadWrite) do
Result:=(Seek($49, SoFromBeginning)=$49) and (write(Base,4)=4);
end;

Onde FileName é o nome da tabela com o caminho e Base o valor inicial para o contador de autoincremento.

Não testei. Abraços.


GOSTEI 0
Trampo

Trampo

02/02/2003

Deixei de usar. Agora uso um campo numerico para codigo (ArquivoID)
e faço assim no datamodule:

// substitua T_XXXX pelo nome de qualquer tabela que chama a rotina e devolve um codigo ID livre


procedure TDataModule1.T_CoordenadorNewRecord(DataSet: TDataSet);
begin
T_Coordenador[´CoordenadorID´]:= Uniques(T_Coordenador,
´CoordenadorID´, T_Coordenador.RecordCount);
end;



{ Acrescente [b:36bade989e]FORMS[/b:36bade989e] em use}
function TDataModule1.Uniques(Tbl: TTable; Fld: String; Value: Integer): Integer;
begin
with TTable.Create( Application ) do
try
DatabaseName := Tbl.DatabaseName;
TableName := Tbl.TableName;
Open;
repeat
Inc(Value)
until Lookup(Fld, Value, Fld) = Null;
Result := Value
finally
Free
end
end;


GOSTEI 0
POSTAR