Fórum Problemas com Bco de Dados Paradox Preciso de Ajuda Urgente! #156777
30/04/2003
0
Amigos eu Fiz Um Aplicativo com o Delphi 5 e minhas tabela estão em dataModule.
Eu Uso esse Comando Baixo em um Botão para incluir um Registro.
procedure TFrmComprador.BtIncClick(Sender: TObject);
begin
DM.TbCompra.open;
DM.TbCompra.last;
wcod:=DM.TbCompraCodigo.Value;
wcod:=(wcod+1);
Edit1.text:=floattostr(wcod);
DM.TbCompra.append;
end;
a Variavel wcod foi declarada no mesmo form do Botão incluir exemplo abaixo.
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmComprador: TFrmComprador;
wcod:real;
implementation
***********************************************************
O Meu Problema é o Seguinte, Quando Clico no Botão Incluir na Maquina servidora onde esta instalado o programa, se o ultimo registro inserido foi o nº 10 o proximo para inclusão é o nº 11 Até Aqui ok!.
Só que se um Usuário for incluir um novo registro ao mesmo tempo em que esta sendo incluido na maquina servidora o Proximo codigo para o usuário da estação também é o nº 11, ai da o erro de Key Violation pois o meu campo de codigo é numerico e tem a chave Primária.
Como resolver este problema de o codigo não dar sequência nas estações! mesmo que a maquina servidora ainda não tenha gravado o registro , Gostaria que o Codigo para os usuarios de qualquer estação não repetisse.
obs: O registro Só é incluido (Gravado no bco de dados depois que o usuário clica em um botão Gravar).
Por Favor Alguém Poderia por gentileza me Ajudar a solucionar este problema, é muito urgente! Aguardo Ancioso por uma resposta e desde já agradeço à Ajuda, um Abraço a todos e fiquem com Deus.
Eu Uso esse Comando Baixo em um Botão para incluir um Registro.
procedure TFrmComprador.BtIncClick(Sender: TObject);
begin
DM.TbCompra.open;
DM.TbCompra.last;
wcod:=DM.TbCompraCodigo.Value;
wcod:=(wcod+1);
Edit1.text:=floattostr(wcod);
DM.TbCompra.append;
end;
a Variavel wcod foi declarada no mesmo form do Botão incluir exemplo abaixo.
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmComprador: TFrmComprador;
wcod:real;
implementation
***********************************************************
O Meu Problema é o Seguinte, Quando Clico no Botão Incluir na Maquina servidora onde esta instalado o programa, se o ultimo registro inserido foi o nº 10 o proximo para inclusão é o nº 11 Até Aqui ok!.
Só que se um Usuário for incluir um novo registro ao mesmo tempo em que esta sendo incluido na maquina servidora o Proximo codigo para o usuário da estação também é o nº 11, ai da o erro de Key Violation pois o meu campo de codigo é numerico e tem a chave Primária.
Como resolver este problema de o codigo não dar sequência nas estações! mesmo que a maquina servidora ainda não tenha gravado o registro , Gostaria que o Codigo para os usuarios de qualquer estação não repetisse.
obs: O registro Só é incluido (Gravado no bco de dados depois que o usuário clica em um botão Gravar).
Por Favor Alguém Poderia por gentileza me Ajudar a solucionar este problema, é muito urgente! Aguardo Ancioso por uma resposta e desde já agradeço à Ajuda, um Abraço a todos e fiquem com Deus.
Vaninho
Curtir tópico
+ 0
Responder
Posts
30/04/2003
Jener
Amigo, para solucionar seu problema, faça o seguinte:
Antes de confirmar a gravação dos dados (Tabela.Post;), faça uma nova
verificação se o número que você tem na sua tela ainda não foi gravado.
Caso tenha sido gravado por outro usuário da rede use sua rotina para acrescentar mais um ao seu código.
Ex:
If Tabela.FindKey([CodigoAtual]) then
Begin
Adiocina +1
Gravar (Post)
End
Else
Gravar(Post).
Valeu! Espero ter ajudado. Se precisar de algo mais, me escreva: jenersm@ieg.com.br
Antes de confirmar a gravação dos dados (Tabela.Post;), faça uma nova
verificação se o número que você tem na sua tela ainda não foi gravado.
Caso tenha sido gravado por outro usuário da rede use sua rotina para acrescentar mais um ao seu código.
Ex:
If Tabela.FindKey([CodigoAtual]) then
Begin
Adiocina +1
Gravar (Post)
End
Else
Gravar(Post).
Valeu! Espero ter ajudado. Se precisar de algo mais, me escreva: jenersm@ieg.com.br
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)