Como tratar erro de Registro duplicado ???

Delphi

08/10/2003

E aí galera, blz ?
Fiz um form para cadastro de produtos, porém no meu botão ´salvar´ tenho que verificar se os dados já existe na tabela antes de postar os dados na tabela... tentei o seguinte:

begin
if not dm.tb_mainclass.Locate(´descricao´,DBEdit2.Text,[locaseinsensitive,lopartialkey])then
begin
DM.TB_mainclass.Post;
Stb_1.Panels[1].Text :=´Registro Salvo´;
end
else
begin
showmessage (´Item já cadastrado´);
end
end;

Mais o delphi manda sempre ´Item já cadastrado´ , mesmo que o iten ainda não esteja cadastrado!
Como faço isso ^?^
Se alguém puder ajudar ...
obrigado


Ederbond

Ederbond

Curtidas 0

Respostas

Cristiane.spl

Cristiane.spl

08/10/2003

olá ,
tente tirar o lopartialkey para ver se da certo


GOSTEI 0
Leanribas

Leanribas

08/10/2003

o que acontece no seu caso é o seguinte , antes de vc executar o locate a sua tabela esta em inserção certo, quando vc executa o locate e gravado altomaticamente o seu registro, pq vc estava em inserção e pediu para o dataset executar um locate, é por isso que aparece sempre a mensgem item já cadastrado, pq na verdade vc acabou de cadastrar ele sem querer.

Para vc resolver isso vc pode criar uma Qry temporaria apenas para vc fazer a consulta ao banco de dados sem mexer no DataSet tb_mainclass


Falou.
Leandro


GOSTEI 0
Ederbond

Ederbond

08/10/2003

Valeu galera... agora só não sei como criar uma Qry temporária... só sei fazer clicando lá na paleta e iserindo ela no meu data module.


GOSTEI 0
POSTAR