Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

Qry problematica rs

Recommended Posts

To com um certo probleminha. Seguinte:

Tenho um form de lista todos os clientes, no evento clike bo botao adc, e coloquei "frmPrincipal.qryClientes.Insert' e dei um 'show' no form de adicionar....

no form de adc tm o seguinte:

 

procedure TfrmAdicionarCliente.btnSalvarClick(Sender: TObject);begin		frmPrincipal.qryClientes.Close;		frmPrincipal.qryClientes.SQL.Clear;		frmPrincipal.qryClientes.SQL.Add('Select * from Clientes WHERE CPF = ' + '''' + edtCPF.Text + '''');		frmPrincipal.qryClientes.Open;			if not frmPrincipal.qryClientes.IsEmpty then				begin   	 		ShowMessage('CPF Ja cadastrado!');   	 		end				else				  frmPrincipal.qryClientes.Post;				  frmPrincipal.qryClientes.Close;				  frmPrincipal.qryClientes.Open;				  edtNome.SetFocus;				  frmClientes.edtPesquisa.SetFocus;				  Close;

O problema é q axo q deve ser por causa do qry.Insert,,, q ele naum verifica nda certo c o CPF ta ou nauim ta cadastrado...

 

Alguem sabe resolver esse problema???

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema principal no seu caso é que você usa a qryClientes do frmPrincipal para dar o insert, e logo após no botão salvar, você limpa o SQL para efetuar uma consulta de CPF, neste caso você perde todas as informações que havia digitado, um diga seria que para validar você crie neste form de insert uma nova qry.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz kra.... na verdade eu ja tinha tentado issu.. mah agora fiz assim :

 

procedure TfrmAdicionarCliente.btnSalvarClick(Sender: TObject);begin	qryValidaRegistro.Close;	qryValidaRegistro.SQL.Clear;	qryValidaRegistro.SQL.Add('Select * from Clientes WHERE CPF = ' + '''' + edtCPF.Text + '''');	qryValidaRegistro.Open;	If not qryValidaRegistro.IsEmpty then	begin	if Application.MessageBox(Pchar('O Sistema detectou a existência de um registro para o CPF: ' + edtCPF.Text + '. Deseja Duplicar o registro?'),'Obj Mobiel: Cadastro de Clientes', mb_YesNo + mb_iconQuestion) = MrYes then	  begin	  frmPrincipal.qryClientes.Post;	  frmPrincipal.qryClientes.Close;	  frmPrincipal.qryClientes.Open;	  edtNome.SetFocus;	  frmClientes.edtPesquisa.SetFocus;	  Close;	  exit;	  end	  else	  abort;	end;	frmPrincipal.qryClientes.Post;	frmPrincipal.qryClientes.Close;	frmPrincipal.qryClientes.Open;	edtNome.SetFocus;	frmClientes.edtPesquisa.SetFocus;	Close;end;

e ele naum valida nda... salva normal....

to desesperado kra.,.. rs.. podria me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

procedure TfrmAdicionarCliente.btnSalvarClick(Sender: TObject);var	salvar: boolean;beginsalvar:=True;qryValidaRegistro.Close;qryValidaRegistro.SQL.Clear;qryValidaRegistro.SQL.Add('Select * from Clientes WHERE CPF = ' + '''' + edtCPF.Text + '''');qryValidaRegistro.Open;If not qryValidaRegistro.IsEmpty then	if Application.MessageBox(Pchar('O Sistema detectou a existência de um registro para o CPF: ' + edtCPF.Text + '. Deseja Duplicar o registro?'),'Obj Mobiel: Cadastro de Clientes', mb_YesNo + mb_iconQuestion) = MrNo then		begin		salvar:=False;		edtCPF.SetFocus;		end;if salvar then	begin	frmPrincipal.qryClientes.Post;	frmPrincipal.qryClientes.Close;	frmPrincipal.qryClientes.Open;	frmClientes.edtPesquisa.SetFocus;	Close;	end;end;

você precisa cuidar tb a forma que guarda o campo CPF, se têm máscara ou não, pois precisa cuidar disto no momento de executar a consulta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema continua sendo que mesmo tendo um registro duplicado no BD ele alega dizendo que não exite, certo ?O campo CPF no BD têm máscara ?O edit onde se digita o CPF têm máscara ? E é passado para o SQL com a máscara ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.