Validação simples

Delphi

09/04/2003

Pessoal,
O problema é o seguinte :
Tenho um cadastro onde o RG é minha chave primaria.
Eu preciso fazer que quando o usuario entre na tela de cadastro e for sair do meu dbeditRG no caso, ele me faça uma pesquisa para verificar se esse registro ja existe.
Se ele nao existir, continuo incluindo.
Se ja existir, passo uma mensagem informando.

Estou utilizando dbExpress, clientdataset, etc...

É meio urgente.
OBRIGADA!!!

Karina....!!!...:D..(-:


Anonymous

Anonymous

Curtidas 0

Respostas

Anonymous

Anonymous

09/04/2003

No evento onexit do dbeditRG faça :

tabela.SQL.CLEAR;
Tabela.SQL.ADD(´Select count(*) from TABELA where RG=´´´+dbeditRG.text+´´´´)
Tabela.Open;
if Tabela.RecordCount <> 0 then
begin
dbeditRG.Setfocus;
ShowMessage(´Cadastro já existe´);
end;


GOSTEI 0
Anonymous

Anonymous

09/04/2003

Simplificando um pouco...

inclusa na clausula uses as seguintes: DB e DBTABLES

if Table.Locate(´CAMPO_RG´,dbEditRG.text,[loCaseInsensitive,loPartialKey]) then
begin
ShowMessage(´RG já Cadastrado´);
dbEditRG.SetFocus;
Exit;
end;

Isso se vc estiver utilizando Tables


GOSTEI 0
Fbsouza

Fbsouza

09/04/2003

Karina,

tenta o seguinte coloque um + um SQLDataset no seu projeto.

sqldataset1.close;
SQLDataset1.commanttext:=´select rg from <tabela> where rg´´´+dbeditrg.text+´´´;´;
sqldataset1.open;
if not (sqldataset1.isempty) then
begin
showmessage(´Usuario com RG já cadastrado´);
dbeditrg.setfocus;
end
else
begin
clientdataset1.aplyupdates(-1);
end;

Coloque esse comandos na hora em que você for gravar os dados.

Espero ter ajudado.


GOSTEI 0
Marcelo

Marcelo

09/04/2003

Pessoal, O problema é o seguinte : Tenho um cadastro onde o RG é minha chave primaria. Eu preciso fazer que quando o usuario entre na tela de cadastro e for sair do meu dbeditRG no caso, ele me faça uma pesquisa para verificar se esse registro ja existe. Se ele nao existir, continuo incluindo. Se ja existir, passo uma mensagem informando.


Olha carina eu te aconselho fazer isso com o CPF, pois alem de único, tem uma formatacao universal. Vou passar a funcao que serve para qualquer um é trocar o nome do edit e da tabela...

begin
TBCliente.IndexName:=´iCPF´;
TBCliente.FindNearest([ECPF.Text]);
if ECPF.Text = TBClienteCPF.Value then
begin
ShowMessage(´Cliente já cadastrado!´);
ECPF.Text := TBClienteCPF.Value;
ENome.Text := TBClienteNOME.Value;
... {e assim por diante, ate acabar os campos da tabela...}
end;
end;

Isso fara com que o cadastro do cliente seje trazido todo para o form de cadastro....

Valeu?
at+...


GOSTEI 0
POSTAR