COMO VALIDAR REGISTRO AO EDITAR
Olá!
estou com um probleminha, no meu programa tem um campo codigo e cnpj, quando vou inserir um novo registro eu consigo testar se ja existe o mesmo registro na tabela. O problema é que não estou conseguindo elaborar linhas de comando para testar regsitros em modo de edição. Estou usando mysql e delphi 7 abaixo está o meu código que não funciona na hora de editar:
Ocorre o seguinte erro: sql error: duplicate entry for key ´idx_cnpj´
procedure TDM.ZQryClienteBeforePost(DataSet: TDataSet);
begin
if(dm.ZQryCliente.state= DSInsert)then
With(DM.ZReadQryCliente)do
begin
Close;
Sql.Clear;
Sql.Add(´Select * from CLIENTE where CODIGO= :PCOD ´);
Parambyname(´PCOD´).AsString:= CadCliente.DBEdit1.Text;
Open;
if not(IsEmpty)then
begin
ShowMessage(´CODIGO já cadastrado!´);
CadCliente.DBEdit1.SetFocus;
Close;
Abort;
end
else
begin
Close;
Sql.Clear;
Sql.Add(´Select * from CLIENTE where CNPJ= :PCNPJ´);
Parambyname(´PCNPJ´).AsString:= CadCliente.DBEdit3.Text;
Open;
If not(IsEmpty)then
begin
ShowMessage(´CNPJ já cadastrado!´);
CadCliente.DBEdit1.SetFocus;
Close;
Abort;
end
else
if(DM.ZQryCliente.State= DSEdit)then
begin
if( messagedlg(´CNPJ ja cadastrado, confirma alteração?´,mtconfirmation,[mbyes, mbno],0)= mrNO) then
DM.ZQryCliente.Cancel;
end;
end;
end;
end;
estou com um probleminha, no meu programa tem um campo codigo e cnpj, quando vou inserir um novo registro eu consigo testar se ja existe o mesmo registro na tabela. O problema é que não estou conseguindo elaborar linhas de comando para testar regsitros em modo de edição. Estou usando mysql e delphi 7 abaixo está o meu código que não funciona na hora de editar:
Ocorre o seguinte erro: sql error: duplicate entry for key ´idx_cnpj´
procedure TDM.ZQryClienteBeforePost(DataSet: TDataSet);
begin
if(dm.ZQryCliente.state= DSInsert)then
With(DM.ZReadQryCliente)do
begin
Close;
Sql.Clear;
Sql.Add(´Select * from CLIENTE where CODIGO= :PCOD ´);
Parambyname(´PCOD´).AsString:= CadCliente.DBEdit1.Text;
Open;
if not(IsEmpty)then
begin
ShowMessage(´CODIGO já cadastrado!´);
CadCliente.DBEdit1.SetFocus;
Close;
Abort;
end
else
begin
Close;
Sql.Clear;
Sql.Add(´Select * from CLIENTE where CNPJ= :PCNPJ´);
Parambyname(´PCNPJ´).AsString:= CadCliente.DBEdit3.Text;
Open;
If not(IsEmpty)then
begin
ShowMessage(´CNPJ já cadastrado!´);
CadCliente.DBEdit1.SetFocus;
Close;
Abort;
end
else
if(DM.ZQryCliente.State= DSEdit)then
begin
if( messagedlg(´CNPJ ja cadastrado, confirma alteração?´,mtconfirmation,[mbyes, mbno],0)= mrNO) then
DM.ZQryCliente.Cancel;
end;
end;
end;
end;
Freeborn
Curtidas 0
Respostas
Facc
10/12/2008
Amigo... nunca escreva o titulo do tópico em caixa alta, dá impressão de vc estar gritando.
GOSTEI 0
Freeborn
10/12/2008
Amigo... nunca escreva o titulo do tópico em caixa alta, dá impressão de vc estar gritando.
perdão pela minha ignorância virtual
GOSTEI 0
Freeborn
10/12/2008
consegui resolver o problema criando variaveis para comparar com a tabela.
Olá!
estou com um probleminha, no meu programa tem um campo codigo e cnpj, quando vou inserir um novo registro eu consigo testar se ja existe o mesmo registro na tabela. O problema é que não estou conseguindo elaborar linhas de comando para testar regsitros em modo de edição. Estou usando mysql e delphi 7 abaixo está o meu código que não funciona na hora de editar:
Ocorre o seguinte erro: sql error: duplicate entry for key ´idx_cnpj´
procedure TDM.ZQryClienteBeforePost(DataSet: TDataSet);
begin
if(dm.ZQryCliente.state= DSInsert)then
With(DM.ZReadQryCliente)do
begin
Close;
Sql.Clear;
Sql.Add(´Select * from CLIENTE where CODIGO= :PCOD ´);
Parambyname(´PCOD´).AsString:= CadCliente.DBEdit1.Text;
Open;
if not(IsEmpty)then
begin
ShowMessage(´CODIGO já cadastrado!´);
CadCliente.DBEdit1.SetFocus;
Close;
Abort;
end
else
begin
Close;
Sql.Clear;
Sql.Add(´Select * from CLIENTE where CNPJ= :PCNPJ´);
Parambyname(´PCNPJ´).AsString:= CadCliente.DBEdit3.Text;
Open;
If not(IsEmpty)then
begin
ShowMessage(´CNPJ já cadastrado!´);
CadCliente.DBEdit1.SetFocus;
Close;
Abort;
end
else
if(DM.ZQryCliente.State= DSEdit)then
begin
if( messagedlg(´CNPJ ja cadastrado, confirma alteração?´,mtconfirmation,[mbyes, mbno],0)= mrNO) then
DM.ZQryCliente.Cancel;
end;
end;
end;
end;
GOSTEI 0