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.


Vaninho

Vaninho

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


Responder

Gostei + 0

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

Aceitar