Fórum travar registro em modo de inserção. #187426

09/10/2003

0

Estou com uma dúvida e queria a ajuda de vcs..
estou rodando um programa em rede..
o campo chave numeração, tem que ser sequencial, mas não é autoincremento pq tem numeros no meio..

ex: 001- f/03
002-f/03
003-C/04
ou seja .. o número + o traço + F(fax) ou C(correspondência)+barra+ultimos dois dígitos do ano corrente.

o meu problema é que qdo duas pessoas tentam incluir um registro ao mesmo tempo ou seja.. eu tento incluir um registro nesta máquina, e dez segundos depois uma pessoa quer incluir tb, eles aparecem com o mesmo número, pois para gerar esta numeração pego o ultimo registro e incluo + 1.
Já pensei em a hora que a pessoa clicar em incluir já gravar o número para ele, assim deu certo mas o único problema é se a pessoa resolver abortar o registro... e outra pessoa no caso com digitação mais rápida já incluiu outro..
ex.. estou incluindo o 005-f/03 e outra pessoa pega o 006-f/03 ele vai e grava o registro mais eu ainda estou incluindo o meu(005-f/03).. aí decido abortar o registro..
a numeração deixaria de ser sequencial.. e isso não pode em hipótese alguma..

se tiverem uma idéia me ajudem nessa.
desculpe se não fui claro, mas que explicar assim é meio complicado..

Valeu.

ahhh uso bd Msaccess e delphi 5.0
Eric :?


Eric.miranda

Eric.miranda

Responder

Posts

10/10/2003

Fabio.hc

Vc pode gerar esta numeração pegando o ultimo registro e incluir + 1 no momento da gravação do registro.


Responder

Gostei + 0

10/10/2003

Marlon Spiess

olá,
acho q isso pode te ajudar.

Primeiro, pege o número somente na hora de grava, e em seguida inclua essa procedure
procedure TForm1.TabelaAfterPost(DataSet: TDataSet);
begin
DbiSaveChanges(TTable(DataSet).Handle);
TTable(DataSet).Refresh;
end;

isso vai forçar a atualização da tabela, equivalente ao commit;

Espero ter ajudado,

Boa Sorte


Responder

Gostei + 0

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

Aceitar