GARANTIR DESCONTO

Fórum Verificar se Cliente ja esta Cadastrado #342419

08/06/2007

0

Olá pessoal....

como q eu faço para quando estou em um DBedit cadastrando um cliente e eu ja tenho o cliente ai quando saio do DBedit o sistema m fala que ele ja esta cadastrado...

estou usando o banco interbase e componentes IBdataset..

obrigado...


Tchucky

Tchucky

Responder

Posts

08/06/2007

Fabiano Góes

uma idéia:

você pode criar uma consulta assim:
select NOME_CLIENTE from CLIENTES
where NOME_CLIENTE = :NOME_CLIENTE


ai você cri um método:
function ClienteExiste(Nome: string): Boolean;
begin
  Result := False;
  try
    IBDataSet1.Close;
    IBDataSet1.Params[0].AsString := Nome;
    IBDataSet1.Open;

    if IBDataSet1.RecordCount > 0 then
      Result := True;
  finally
    IBDataSet1.Close;
  end;
end;


então no evento OnExit do edit você usa o metodo assim:
  if ClienteExiste(Edit1.Text) then
    ShowMessage(´Cliente já cadastrado´);


espero ter ajudado.
um abraço !!!


Responder

Gostei + 0

09/06/2007

Tchucky

Olá Fabiano Góes

fiz a função q vc m passou
function ClienteExiste(Nome: string): Boolean;
begin
  Result := False;
  try
    DM1.IBPaciente.Close;
    DM1.IBPaciente.Params[0].AsString := Nome;
    DM1.IBPaciente.Open;

    if DM1.IBPaciente.RecordCount > 0 then
      Result := True;
  finally
    DM1.IBPaciente.Close;
  end;
end; 


e chameu ela no onexite
if ClienteExiste(wwDBEdit1.Text) then
    ShowMessage(´Cliente já cadastrado´); 


tudo da forma que vc m falou...mas tem um problema esta dando erro o erro é o seguinte:

XSQLDA index out of range

sempre quando eu saio do edit da esse erro e fecha a tabela assim ele naum deixa eu entrar com dados nem um...


Responder

Gostei + 0

09/06/2007

Steve_narancic

Selecione o IBDataSet1 e verifique a propriedade params do IBDataSet1 se o parametro esta definido corretamente


Responder

Gostei + 0

09/06/2007

Tchucky

Olá steve_narancic

IBDataSet não tem a propriedade params esse que esta sendo meu problema....

A uma forma de colocar o params nele pois é a primeira vez que estou usando os componentes IBDataSet


Responder

Gostei + 0

10/06/2007

Fabiano Góes

Tchucky,
tenta usar [b:d095b26089]Edit [/b:d095b26089]no lugar de DBEdit apenas no nome

ai você faz a chamada ao metodo assim:
if ClienteExiste(wwEdit1.Text) then
    ShowMessage(´Cliente já cadastrado´)
else
begin
  IBCadastro.Open;
  IBCadastro.Insert;
  IBCadastro.FieldByName(´Nome´).AsString := EditNome.Text;
  ProximoDBEdit.SetFous;
end;


só uma observação: você deve usar um DataSet exclusivo para o metodo ClienteExiste e outro para Cadastro, Alteração, etc ...


sobre a propriedade param do IBDataSet:
o IBDataSet descende de TIBCustomDataSet que possui a propriedade Params como visibilidade public, então automaticamente o IBDataset herda essa propriedade apesar de nao aparecer no object inspector.
Você configurar o param via código:
  IBDataSet.Params[0].AsString;


você pode acrescentar essa linha ao metodo caso ainda ocorra o problema.


Responder

Gostei + 0

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

Aceitar