AutoIncremento

Delphi

08/03/2003

Ola pessoal, eu ja coloquei essa pergunta no forum mais ninguém me respondeu, então vou perguntar de novo ´Por acaso alguém sabe com faço para zerar o campo AutoIncremento quando eu deletar todos os registro da tabela ? ´ Se alguém poder dirar essa duvida eu agradeço....


Anonymous

Anonymous

Curtidas 0

Respostas

Fcs-bh

Fcs-bh

08/03/2003

CARA SE ESTIVER USANDO PARADOX PODE TENTAR O SEGUINTE:

É MEIO CHATO MAS,

1. MUDE A ESTRUTURA DO CAMPO DE AUTO-INCREMENTO (SE FOR A CHAVE PRIMÁRIA VC DEVERÁ REMOVÊ-LA PRIEMEIRO), MUDE POR EXEMPLO PARA INTEIRO.

2. SALVE A TABELA;

3. MUDE NOVAMENTE O CAMPO PARA AUTO-INCREMENTO E SE DESEJAR COLOQUE A CHAVE-PRIMÁRIA.

PRONTO ISSO DEVE RESOLVER.


GOSTEI 0
Jfalexandre

Jfalexandre

08/03/2003

Para zerar deverá tirar a condição do campo de altoIncremento, um cadastro uma vez registrado, na condição de AutoIncremento, ele não renumerará outra vez, mesmo que vc apague tudo, não é bom deletar cadastros, mesmo quando estes ocupam muito espaço, pelo motivo: ex:
Digamos que vc trabalhe em uma locadora, aí um {João das Couves} da vida alugou um carro lá em 1997, e nunca mais voltou... Vc deve se dizer porque ficar com esse {João das Couves}? Ele vai ficar Cadastrado somente ocupando espaço??? Há quem pense que deletar é a melhor solução, mas no meu ver, é necessário deizá-lo, mesmo que não seja ativo, porque vai que o chefe pede um relatório, de todos os carros que foram locados em 97, pode ser também todos os fregueses, vai que justamente a placa deste carro do {João das Couves} é a placa de um carro cujo o motorista assassinou alguém justamente na data em que {João das Couves} locou o carro, existem outros inúmeros motivos, para deixar seu programa como está com o campo na condição de AutoIncremento e sem deletar nada...

Espero te dado uma dica legal!

Até mais.


GOSTEI 0
Jycn

Jycn

08/03/2003

function ResetAutoInc(FileName: TFileName; Base: Longint): Boolean;
begin
with TFileStream.Create(FileName, fmOpenReadWrite) do
begin
Result := (Seek($49, soFromBeginning) = $49) and (Write(Base, 4) = 4);
Free;
end;
end;
O parâmetro FileName é o nome da tabela, incluindo o caminho. E o parâmetro Base é o valor inicial para o contador do AutoIncremento. Veja um exemplo de uso:

procedure TForm1.Button1Click(Sender: TObject);
begin
ResetAutoInc(´C:\Temporario\Cliente.db´, 1);
end;


GOSTEI 0
POSTAR