Array
(
)

criação de autoincremental com tabela controle

Firekiller_am
   - 07 fev 2006

ola galera clube delphi eu tenho um controle de codigo autoincremental no sql server usando delphi 7,
Que nao controla quando o codigo ja foi apagado ele nao gera novamente aquele codigo ja gera o proximo.

exemplo se eu deletar o ultimo codigo 3 depois gerar um novo ele registro ele era o 4 e esquece o 3 ;

tem como eu fazer com que ele nao perca o ultimo codigo que nesse exemplo foi apagado.

minha rotina esta ai em baixo..

qrControle.Open;
qrFornecedoresCodigo.Value:= qrControleFornecedor.value+1;
qrControle.edit;
qrControleFornecedor.Value:= qrControleFornecedor.Value+1;
qrControle.Post;
qrControle.close;

obrigado a todos que possam me ajudar..


Aroldo Zanela
   - 07 fev 2006

Colega,

Não vejo o menor problema em ter falhas na numeração incremental, eis que o normalmente objetivo é assegurar o relacionamento entre mestre e detalhe. No entanto, você pode adicionar esse controle no manipulador de eventos BeforeDelete, comparar se a tabela de controle possui o número do registro que será removido e em caso positivo ´decrementar´ na tabela de controle e em seguida efetuar a exclusão.


Michael
   - 07 fev 2006

A idéia de campos incrementais é manter a unicidade dos registros. Desta forma vc pode relacionar tabelas por estes campos sabendo que eles nunca serão alterados ou repetidos.

Tome cuidado ao mudar a incrementação dos campos nesta situação, pois isso pode quebrar a consistência do banco de dados e deixar registros órfãos.

[]´s