Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Mostrar Minúsculas Y Mayúsculas Igualmente (sqlite3)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Mostrar Minúsculas Y Mayúsculas Igualmente (sqlite3) 
 
buenas

SELECT * FROM palabras WHERE palabra='marcelo' COLLATE NOCASE


con la sentencia anterior nos mostrará tanto:

marcelo como, Marcelo como, maRcelo etc

ahora como sería si queremos hacer lo mismo pero con un filtro mediante where y like?
o se hace con algún pragma?


escucho sugerencias  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mostrar Minúsculas Y Mayúsculas Igualmente (sqlite3) 
 
SELECT * FROM palabras WHERE palabra LIKE '%Marcelo%'

PRAGMA case_sensitive_like=0

PRAGMA case_sensitive_like=1



esto funciona en las consulta de gambas pero no funciona en el programa, tal vez algo no hago bien  


Public Sub PragmaSensitive(accion As Boolean)
  
  If accion Then
    Conexion.Exec("PRAGMA case_sensitive_like=1")
  Else
    Conexion.Exec("PRAGMA case_sensitive_like=0")
  Endif
  
End

  PragmaSensitive(chkbNoCase.Value)  

ResultadoX2 = Conexion.Exec("Select * from '" & NomTablaX & "' where texto like '%" & EsteFiltro & "%'")

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mostrar Minúsculas Y Mayúsculas Igualmente (sqlite3) 
 
este es el contexto donde se encuentra la sentencia sql

Public Sub PragmaCaseSensitiveLike(accion As Boolean)
  
'   PRAGMA case_sensitive_like = [true|false];
'PRAGMA case_sensitive_like = 1;
'Select * From 'Mateo' where texto like '%Padre%';
  
  If accion Then
    Conexion.Exec("PRAGMA case_sensitive_like=true")
  Else
    Conexion.Exec("PRAGMA case_sensitive_like=false")
  Endif
  
End


Public Sub BuscarTexto(EsteFiltro As String, EstosLibros As Integer[])
  Dim ResultadoX, ResultadoX2 As Result
  Dim ContadorVersiculos, NumTabla, Buscando, InicioTitulo, FinTitulo, coincidencias, CoincidenciasLibro, iVeces, i As Integer
  Dim iVersPorLibro, iTotalAT, iTotalNT As Integer
  Dim NomTablaX, Titulo, TituloOK, ContadorCoincidencias As String
  Dim Proceso1, Proceso2, Proceso3, Proceso4, Proceso5 As String
  Dim AquiReferencias, ResultadosEncontrados As String
  Dim PrimeraLinea As Boolean = True
  Dim Encabezado As Boolean = True
    
  ContenidoBusquedaGuardar = ""
  
  FiltroLibros = EstosLibros
      
   Inc Application.Busy
      
      PragmaCaseSensitiveLike(chkbNoCase.Value) 'nueva linea
      
      
  For Each NumTabla In FiltroLibros
      ResultadoX = Conexion.Exec("select * from 'biblia'")
                
      Do While ResultadoX.Available
        If ResultadoX!indicelibro = NumTabla Then
          NomTablaX = ResultadoX!nombretabla
          
          'Select * From 'Mateo' where texto like '%Padre%';
           ResultadoX2 = Conexion.Exec("Select * from '" & NomTablaX & "' where texto like '%" & EsteFiltro & "%'") ' original
'           ResultadoX2 = Conexion.Exec("Select * from '" & NomTablaX & "' where texto like '%" & EsteFiltro & "%'") 'original
          
          Encabezado = True
          iVersPorLibro = 0 'contador por libro
          
           If ResultadoX2.Available = True Then

              Do While ResultadoX2.Available
                 Buscando = InStr(ResultadoX2!texto, EsteFiltro)
                 InicioTitulo = InStr(ResultadoX2!texto, "- ")
                 FinTitulo = InStr(ResultadoX2!texto, " -")

                 If chkVerRef.Value Then AquiReferencias = ResultadoX2!referencias

                 If InicioTitulo > 0 Then
                    Titulo = Left$(ResultadoX2!texto, FinTitulo + 2)
                    TituloOK = "<b><i>" & Titulo & "</i></b>"
                 Endif
            
                 If Buscando = 0 Then 'si no hay ninguna coicidencia pasa al siguiente dato
                    ResultadoX2.MoveNext
                    Continue
                 Endif
                  
                 iVeces = 0
              
                 Do
                   i = String.InStr(ResultadoX2!texto, EsteFiltro, i + 1)
                   If i > 0 Then
                      Inc coincidencias
                      Inc CoincidenciasLibro
                      Inc iVeces
                      
                      Select Case NumTabla 'contador por libro
                        Case 1 To 39
                          Inc iTotalAT
                        Case Else
                          Inc iTotalNT
                      End Select 'contador por libro
                    Endif
                    
                 Loop Until i = 0
                  
                 Proceso1 = Mid(ResultadoX2!texto, Buscando, Len(EsteFiltro))
                 Proceso2 = Replace$(Replace$(ResultadoX2!texto, Titulo, TituloOK), Proceso1, "<FONT><b>" & EsteFiltro & "</b></font>")
                 Proceso3 = Replace$(Proceso2, "[", "<FONT><b><i><sup>")
                 Proceso4 = Replace$(Proceso3, "]", "</sup></i></b></font>")
                 Proceso5 = Replace$(Proceso4, "*", "<FONT><b>*</b></font>")
                
                 If iVeces = 1 Then
                    If PrimeraLinea = True Then 'es true si es la primera linea es para evitar la primera linea vacia.
                       If chkVerRef.Value Then
                          ResultadosEncontrados = "<FONT><b>(" & NomTablaX & " " & ResultadoX2!capitulo & ":" & ResultadoX2!versiculo & ")</b></font>  " & Proceso5 & " <FONT><b>" & AquiReferencias & "</b></font>" & "<br>"
                          PrimeraLinea = False
                        Else
                          ResultadosEncontrados = "<FONT><b>(" & NomTablaX & " " & ResultadoX2!capitulo & ":" & ResultadoX2!versiculo & ")</b></font>  " & Proceso5 & "<br>"
                          PrimeraLinea = False
                        Endif                      
                    Else
                        If chkVerRef.Value Then
                           ResultadosEncontrados &= "<FONT><b>(" & NomTablaX & " " & ResultadoX2!capitulo & ":" & ResultadoX2!versiculo & ")</b></font>  " & Proceso5 & " <FONT><b>" & AquiReferencias & "</b></font>" & "<br>"  
                        Else
                           ResultadosEncontrados &= "<FONT><b>(" & NomTablaX & " " & ResultadoX2!capitulo & ":" & ResultadoX2!versiculo & ")</b></font>  " & Proceso5 & "<br>"  
                        Endif
                    Endif
                 Else
                    'entra en esta zona cuando hay mas de una coincidencia en un mismo versiculo.
                    If PrimeraLinea = True Then
                      ResultadosEncontrados = "<FONT><b>(" & NomTablaX & " " & ResultadoX2!capitulo & ":" & ResultadoX2!versiculo & ")</b></font><FONT><b> " & iVeces & "</b></font> " & Proceso5 & "<br>"
                      PrimeraLinea = False
                    Else
                      ResultadosEncontrados &= "<FONT><b>(" & NomTablaX & " " & ResultadoX2!capitulo & ":" & ResultadoX2!versiculo & ")</b></font><FONT><b> " & iVeces & "</b></font> " & Proceso5 & " <FONT><b>" & AquiReferencias & "</b></font>" & "<br>"
                    Endif
                 Endif
                  
                 Inc iVersPorLibro 'contador por libro                              
                 Inc ContadorVersiculos
                 ResultadoX2.MoveNext
              Loop
              
              If Not bSinLibros Then
                 If CoincidenciasLibro > 0 Then lstBPorLibro.Add(NomTablaX & "(" & CoincidenciasLibro & ")") 'contador por libro DE PRUEBA
              Endif
                          
             Endif
        Endif
        ResultadoX.MoveNext
        CoincidenciasLibro = 0
      Loop
      
  Next
  
  If Not bSinLibros Then lstBPorLibro.Add("Todos (" & coincidencias & ")", 0) 'contador por libro DE PRUEBAS
  If Not bSinLibros Then lstBPorLibro.Add("Antiguo (" & iTotalAT & ")", 1) 'contador por libro
  If Not bSinLibros Then lstBPorLibro.Add("Nuevo (" & iTotalNT & ")", 2) 'contador por libro
  
  txtEBuscar1.RichText = ResultadosEncontrados
  Wait 0.1
  ContadorCoincidencias = MostrarCoincidencias(ContadorVersiculos, coincidencias)
  ContenidoBusquedaGuardar &= ContadorCoincidencias & " (VisorRV1960 versión " & Application.Version & ")<br><br>" & txtEBuscar1.RichText
  Dec Application.Busy
  
End

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mostrar Minúsculas Y Mayúsculas Igualmente (sqlite3) 
 
Creo que te lías innecesariamente. Si quieres búsqueda exacta, simplemente:
SELECT * FROM palabras WHERE palabra='marcelo'
 

Si quieres busqueda no sensible a mayúsculas y minúsculas:
SELECT * FROM palabras WHERE palabra LIKE 'marcelo'
 

Si quieres, además, buscar fragmentos de palabras (que contengan)
SELECT * FROM palabras WHERE palabra LIKE '%marcelo%'
 

O que empiecen por la cadena
SELECT * FROM palabras WHERE palabra LIKE 'marcelo%'
 

O que terminen por la cadena
SELECT * FROM palabras WHERE palabra LIKE '%marcelo'
 


El toqueteo de los pragmas te puede llevar a resultados espúreos por cuanto las igualdades de las cadenas pueden no ser correctas, etc. etc.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Problemas Al Crear El Paquete Deb con sqlite3 pittusa Instalación 11 Viernes, 18 Marzo 2011, 20:04 Ver último mensaje
pittusa
No hay nuevos mensajes Problemas Para Convertir Texto A Mayúsculas lumbanico General 10 Lunes, 01 Agosto 2011, 01:28 Ver último mensaje
Haseo
No hay nuevos mensajes Conflicto De Mayúsculas Y Minúsculas shordi General 1 Miercoles, 26 Febrero 2014, 10:02 Ver último mensaje
Shell
No hay nuevos mensajes Nombre De Las Tablas. Minúsculas O Mayús... Shell Bases de Datos 3 Domingo, 26 Junio 2016, 14:56 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron