Página 1 de 1

Usando Hb_RegExSplit para construir um LIKE SQL

Enviado: 26 Jan 2021 21:16
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"      

Usando Hb_RegExSplit para construir um LIKE SQL

Enviado: 26 Jan 2021 21:26
por asimoes
Isso é opcional o usuário digita no objeto get o nome que quer pesquisar

Usando Hb_RegExSplit para construir um LIKE SQL

Enviado: 27 Jan 2021 08:05
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 .....'