Usando Hb_RegExSplit para construir um LIKE SQL

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usando Hb_RegExSplit para construir um LIKE SQL

Mensagem por asimoes »

Estou usando em uma rotina de consulta por nomes, se tem forma melhor eu aceito

cTeste := ",JOAO ,, MARIA,JOSE "

Código: Selecionar todos

   cTeste := ",JOAO ,, MARIA,JOSE "
   aLike := Hb_RegExSplit( ",", AllTrim( cTeste ) )
   
   FOR EACH oElemento IN aLike
      IF Empty( oElemento )
         Hb_aDel( aLike, oElemento:__EnumIndex, .T. )
      ENDIF   
   NEXT

   cLike := ""

   FOR EACH oElemento IN aLike
      cLike += "APC.NOME LIKE '%" + AllTrim( oElemento ) + "%'"
      IF Len( aLike ) > 1 .AND. oElemento:__EnumIndex < Len( aLike )
         cLike += " OR "
      ENDIF
   NEXT   
        cQuery := "SELECT " + ;
                      "   * " + ;
                      "FROM " + ;
                      "   CADASTROSOCIOS APC " + ;
                      "WHERE " + ;
                      cLike + ;
                      "ORDER BY " + ;
                      "   APC.NOME, APC.CODIGO"      
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usando Hb_RegExSplit para construir um LIKE SQL

Mensagem por asimoes »

Isso é opcional o usuário digita no objeto get o nome que quer pesquisar
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usando Hb_RegExSplit para construir um LIKE SQL

Mensagem por JoséQuintas »

Talvez um join.

Uso desse mesmo jeito no meu browse ADO, pra filtrar enquanto digita, inclusive pra valor ou data.

Temporario:Filter := "nome like .....'
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder