Problemas com índices de tabela Access

Delphi

15/04/2003

E aí pessoal!

Possuo uma base Access, com os campos Código e Protocolo, sendo esses dois campos com números sequenciais, podendo eu alterar a sequência do campo Protocolo.

O problema está aí!
Ex.: o último registro gravado possuía o Código 54 e o nr. de Protocolo 2131625.

Ao gerar um novo registro o código passaria para o nr. 55 e o Protocolo para 2131626.

Alterando esse nr. de protocolo para 2131629, por exemplo, ele grava blz.

Mas, depois de gravado, se eu incluir um novo registro ele perde a sequência do último protocolo.

Como resolvo esse problema?


Vega.x

Vega.x

Curtidas 0

Respostas

Marconi

Marconi

15/04/2003

O ideal seria não deixar um dos campos como sequencial, mas sim numérico. Eu, por exemplo, tenho um arquivo com somente um registro, que guarda o último número gerado em Notas Fiscais, bem como a data. Neste aquivo controlo numeração de Notas Fiscais de Serviço e de Venda.

Para mudar o campo voce deve criar um campo numérico temporário na tabela, exemplo ´Tmp´ e copiar todos os registros do protocolo para lá. Depois elimina o campo protocolo e recrie de novo com o formato numerico. Recopie todos os valores do campo ´tmp´ para o novo campo protocolo, e elimine o campo ´tmp´.

A partir deste instante o campo protocolo não é mais automático, mas voce pode colocar um função em ´AfterInsert´ da tabela que gera o próximo protocolo.

Uma outra solução seria colocar um botão gerador para o novo código, que disparasse uma rotina para procurar um número disponível para protocolo, ou mesmo consultasse um arquivo com estas informações, como é o meu caso.

Espero ter ajudado

Marconi


GOSTEI 0
POSTAR