Fórum Verificação de CPF #284435

11/06/2005

0

Olá galera, blz?

Tenho uma tela de cadastro onde, o campo CPF, ao perder o foco, só é aceito qdo não for repetido. Tentei algumas maneiras, mas não obtive sucesso.

No evento onexit do campo cpf, coloquei da seguinte forma:

with dm.cdsCpf do
begin
if not dm.cdsCpf.IsEmpty then
begin
MessageDlg(´Ja existe um cliente com este CPF. Por favor, digite o correto.´, mtinformation, [mbOk], 0);
mskedtCpf.SetFocus;
end

Já tentei tbem usando o cdsClientes(um outro clientdataset que criei):

dm.sqlClientes.CommandText := ´select CPF from clientes where CPF =:CPF´;
if not dm.cdsclientes.IsEmpty then
begin
MessageDlg(´Ja existe um cliente com este CPF. Por favor, digite o correto.´, mtinformation, [mbOk], 0);
mskedtCpf.SetFocus;
end

O que acontece é que está verificando se a tabela está vazia, e não se foi digitado outro cpf igual, visto que tenho o sqlCpf (que é o sqlclientdataset) que tá definido como select CPF from clientes where CPF =:CPF), com o parametro string, aplicado no clientdaset através do fetchparams.

Acho que ele não está executando a sql.

Se alguem puder me ajudar, ficarei grato.


[]´s

Rogério


Roger1976

Roger1976

Responder

Posts

11/06/2005

Gameiro

vc esta fechando o sqldatset antes de passar o commandtext?

eu sempre uso assim

clientdataset.close;
sqldatset.close;
sqldatset.commandtext:=´´select CPF from clientes where CPF =:CPF´
sqldataset.parambyname(´cpf´).asstring:=mskedtCpf.text;
sqldatset.open;



Vc pode dar open no clientdatset o sqldataset.

não sei se resolve.


ate mais

:)


Responder

Gostei + 0

11/06/2005

Roger1976

Kra, eu já tinha feito de várias formas, mas a sua dica me mostrou algo que não tinha percebido... Ficou assim:

with dm.cdsCpf do
begin
Close;
Commandtext := ´select CPF from clientes where CPF =:CPF´;
params.ParamByName(´CPF´).AsString := mskedtCpf.text;
open;

if not dm.cdsCpf.IsEmpty then
begin
MessageDlg(´Ja existe um cliente com este CPF. Por favor, digite o correto.´, mtError, [mbOk], 0);
mskedtCpf.SetFocus;
end
end

Muito obrigado!!!


Responder

Gostei + 0

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

Aceitar