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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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