Validacao

Delphi

27/08/2011

Ola


 Estou  fazendo  a validacao no Onvalidate para campos duplicados, usando a procedure abaixo:


procedure TDataModule1.Servalida(tabela:Tclientdataset;texto: string;campo1:Tfield;campo2:string;campo3:Tfield);
begin
  datamodule1.CDvalida.active:=false;
  datamodule1.CDvalida.Params.Clear;
  datamodule1.CDvalida.CommandText:=texto;
  datamodule1.CDvalida.active:=true;
  if tabela.state in [dsinsert] then begin
    if datamodule1.CDvalida.locate(campo2,campo1.value,[locaseInsensitive]) then
        Raise Einvalidnome.create('Campo Já cadastrado');
  end;
  if tabela.state in [dsedit] then begin
    if datamodule1.CDvalida.locate(campo2,campo1.value,[locaseInsensitive]) then begin
       if datamodule1.CDvalida['controle']<>campo3.value then
           Raise Einvalidnome.create('Campo Já cadastrado');
    end;
  end;
  datamodule1.CDvalida.active:=false;
  datamodule1.CDvalida.Params.Clear;
  datamodule1.CDvalida.CommandText:=(' ');
end;


A chamada da procedures  no onvalidate do campo é : ( tabela proprietario) ==>
servalida(CDproprietario,'select controle,nome from  proprietario',CdproprietarioNome,'nome',CDproprietariocontrole)


no entanto só esta funcionando para 4 caracteres - mais do que isso  passa como falso

o que pode estar acontecendo?

 cilmar
Cilmar Rosa

Cilmar Rosa

Curtidas 0
POSTAR