Fórum AutoIcremento #132091

02/02/2003

0

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

Responder

Posts

02/02/2003

Anonymous

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.


Responder

Gostei + 0

27/02/2003

Trampo

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;


Responder

Gostei + 0

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

Aceitar