Testar se o Código de barra ja existe.

Delphi

14/09/2009

Opa, tudo certo?
To tentando inserir uma menasgem de erro no meu cadastro de produtos pra caso ja exista no banco um codigo de barra igual ao que eu estou tentando cadastrar.. E preciso colocar o código no evento ´before insert´ da tabela de produtos(IBQProdutos)...
Que tipo de código eu posso usar pra testar se já existe?
Tentei usar um Locate:
if IBQProdutos.locate(´CD_BAR´, DBEdit4.Text, []) then
ShowMessage(´Já existe um produto cadastrado com este código de barra´)

DBEdit4.text no caso é o edit onde eu coloco o numero do código de barra...

Deu pra entender? Se alguem pude ajudar (:


Spleen

Spleen

Curtidas 0

Respostas

Vmlima

Vmlima

14/09/2009

Olá...

é o seguinte, vc pode fazer de várias formas...
Uma delas é colocar o campo de codigo de barras como unique diretamente no banco, mas se vc não quer colocar regras no banco, vc pode fazer assim

No before post da sua query vc coloca outra query que fará a pesquisa:

IBQuery.Close;
IBQuery.SQL.Text := ´select * from tabelaproduto where CD_BARRA = ´ + NovoCodigoDeBarra;
IBQuery.Open;
If IBQuery.RecordCount > 0 then begin
IBQProdutos.CanvelUpdates;
ShowMessage(´Produto ja cadastrado´)
end;


Espero ter ajudado, att.


GOSTEI 0
Spleen

Spleen

14/09/2009

Ajudou demais parcero..
valeu mesmo.
O código acabou ficando assim:

IBQCodigoDeBarras.Close;
IBQCodigoDeBarras.SQL.Text := ´SELECT CD_BAR, CD_PRD FROM PRODUTOS WHERE CD_BAR = ´ + CodBarra + ´AND CD_PRD <> ´ + DBEdit1.Text;
IBQCodigoDeBarras.Open;
if IBQCodigoDeBarras.RecordCount > 0 then
begin
if Application.MessageBox(´O código de barras já existe! Deseja continuar?´, ´Aviso!´, MB_ICONEXCLAMATION + MB_YESNO) = idNo then
Abort;
end;


GOSTEI 0
Vmlima

Vmlima

14/09/2009

isso ai cara...
Estamos ai,
Agora só falta vc colocar [Resolvido] no tópico

att.


GOSTEI 0
POSTAR