Fórum Locate com ADO em Delphi7 #333060

13/11/2006

0

Pq essa busca não funciona?
Estou usando isso para verificar se o Produto ja existe no cadastro de produtos.

procedure TFrmCadPro.DBEdit2Exit(Sender: TObject);
begin
if DBEdit2.Text = ´´ then
begin
ShowMessage(´Digite o Produto´);
DBEdit2.SetFocus
end
else
if ADOQProdutos.Locate(´CdProduto´, DBEdit2.Text, []) then
begin
ShowMessage(´Produto ja existe´);
DBEdit2.SetFocus
end
else
DBEdit3.SetFocus;
end;

end.

Mais da erro.

[img:313b87c5f2]http://www.webexpresso.com.br/erro.JPG[/img:313b87c5f2]


Digital_man

Digital_man

Responder

Posts

13/11/2006

Rjun

Quando você da um Locate na tabela ou query que você está editando, ele vai obrigatoriamente dar um Post nesse objeto. Se ja existir uma chave primaria com o valor que você informou, vai dar erro de duplicação de chave primária.


Responder

Gostei + 0

13/11/2006

Digital_man

Quando você da um Locate na tabela ou query que você está editando, ele vai obrigatoriamente dar um Post nesse objeto. Se ja existir uma chave primaria com o valor que você informou, vai dar erro de duplicação de chave primária.


Entaum como eu poderia resolver esse caso, de verificar se ja existe?


Responder

Gostei + 0

14/11/2006

Rjun

Que banco você esta usando? Se você estiver usando um banco de dados que tenha suporte a Stored Procedure, faça esse tipo de verificação na stored procedure. Se o banco não suporta, então utilize uma TQuery auxiliar e faça nela a verificação de existência de seu código.


Responder

Gostei + 0

14/11/2006

Quartieri

begin
if edtLocal.text = ´´ then exit;
with ObjAgenda.aADOQryPesquisa do
begin
Locate(´Local´,edtLocal.text,[loCaseInsensitive,loPartialKey]);
end;
end;

Aqui funfa legal :D


Responder

Gostei + 0

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

Aceitar