Fórum Verificar se Cliente ja esta Cadastrado #342419
08/06/2007
0
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
Curtir tópico
+ 0Posts
08/06/2007
Fabiano Góes
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 !!!
Gostei + 0
09/06/2007
Tchucky
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...
Gostei + 0
09/06/2007
Steve_narancic
Gostei + 0
09/06/2007
Tchucky
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
Gostei + 0
10/06/2007
Fabiano Góes
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)