[firebase-br] Trocar o Uso do Like por Containing....

Fernando Oliveira Pereira fernando.olpereira em gmail.com
Qua Nov 7 10:59:18 -03 2007


Zottis, a clausura LIKE necessita do caracter % para determinar início e fim
de cadeia de caracteres.

Então o trecho ficaria assim:

if radioGroup1.ItemIndex=0 then
begin
    ParamByName('VarPago').AsString:= '%%';
end else if radioGroup1.ItemIndex=1 then
             begin
                ParamByName('VarPago').AsString:='%S%';
             end else if radioGroup1.ItemIndex=2 then
                          begin
                              ParamByName('VarPago').AsString:='%N%';
                          end;

Falow... abraço!


Em 07/11/07, Zottis <zottissistemas em brturbo.com.br> escreveu:
>
> Bom Dia Turma....
>
> Estou com uma dúvida.
>
> tenho formulários de Pesquisa que ainda usam o comando "LIKE", mas estou
> trocando pelo uso  de CONTAINING e STARTING WITH
>
> mas aí a dúvida....
>
>             With Busca do
>               Begin
>                   Close;
>                   sql.Clear;
>                   sql.Add('select ............');
>                   sql.Add ('from CtaPag,Fornecedores');
>                   sql.Add ('where');
>                   sql.Add ('CtaPag.FornecedorNo =
> Fornecedores.FornecedorNo
> and CtaPag.DELETADO = ''N''and');
>
>                   sql.Add ('(CtaPag.Pago) Like(:VarPago) and');    ///
> <<<<======== AQUI A DÚVIDA
>
>
>                   sql.Add ('(Vencimento Between :VarDataI and :VarDataF)
> and');
>                   sql.Add ('Upper(Fornecedores.razaoSocial) CONTAINING
> Upper(:VarNome) or Upper(Fornecedores.NomeFantasia) CONTAINING
> Upper(:VarNome)');
>                   sql.Add ('order by
> Vencimento,CTAPAG.FORNECEDORNO,contano');
>                   ParamByName('VarDataI').AsDate    := Data1.Date;
>                   ParamByName('VarDataF').AsDate    := Data2.Date;
>                   ParamByName('VarNome').AsString   := MaskEdit1.Text;
>
>                      if radioGroup1.ItemIndex=0 then
>                        begin
>                        ParamByName('VarPago').AsString  := '%';  <<=====
> COMO PASSAREI A OPÇÃO QUANDO SÃO OS DOIS TIPOS("S" e "N")?
>                        end else
>                      if radioGroup1.ItemIndex=1 then
>                        begin
>                        ParamByName('VarPago').AsString:='S';
>                        end else
>                      if radioGroup1.ItemIndex=2 then
>                        begin
>                        ParamByName('VarPago').AsString:='N';
>                        end;
>                   Prepare;
>                   Open;
>               End;
>
>
> valeu
>
>
> Zottis
>
> USO DElphi7 FB 2.0 e MDO
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Fernando Oliveira Pereira
Analista & Programador em Sistema de Informação
TiSystems S/S Ltda
Alfenas - MG



Mais detalhes sobre a lista de discussão lista