Verificar se Cliente ja esta Cadastrado
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...
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
Curtidas 0
Respostas
Fabiano Góes
08/06/2007
uma idéia:
você pode criar uma consulta assim:
ai você cri um método:
então no evento OnExit do edit você usa o metodo assim:
espero ter ajudado.
um abraço !!!
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
Tchucky
08/06/2007
Olá Fabiano Góes
fiz a função q vc m passou
e chameu ela no onexite
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...
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
Steve_narancic
08/06/2007
Selecione o IBDataSet1 e verifique a propriedade params do IBDataSet1 se o parametro esta definido corretamente
GOSTEI 0
Tchucky
08/06/2007
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
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
Fabiano Góes
08/06/2007
Tchucky,
tenta usar [b:d095b26089]Edit [/b:d095b26089]no lugar de DBEdit apenas no nome
ai você faz a chamada ao metodo assim:
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:
você pode acrescentar essa linha ao metodo caso ainda ocorra o problema.
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