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 :?
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)