https://foro.gambas-es.org/viewtopic.php?f=3&t=5806
-----------------------------------
v3ctor
Lunes, 19 Septiembre 2016, 22:58

Problema Con Consulta Sqlite Con La Letra ñ[Resuelto]
-----------------------------------
[img]https://foro.gambas-es.org/files/images/2261/letras.png[/img] 

para darle comodidad y velocidad al usuario se me ocurrio poner una abecedario y al hacer un clic sobre una letra mostrar todos los nombres que empiecen con esa letra con la siguiente sql....

[code linenumbers=false syntax=gambas]  sql = Subst("Select * from DatosPersonas where nombrePer like '&1%' order by nombrePer asc", Letra)[/code]

ahora bien el problema surge con la letra ñ
si pongo letra ñ minúscula no muestra la Ñ mayúsculas y viceversa

como puedo resolver esto?


-----------------------------------
v3ctor
Lunes, 19 Septiembre 2016, 23:41

Re: Problema Con Consulta Sqlite Con La Letra ñ
-----------------------------------
bueno también se da el problema con las bocales con tilde   :roll:


-----------------------------------
Grandamakulo
Martes, 20 Septiembre 2016, 08:38

Re: Problema Con Consulta Sqlite Con La Letra ñ
-----------------------------------
Se me ocurre a «botepronto» añadir una condición «O» de búsqueda, realizando en el primer argumento LCASE y en el segundo UCASE. Ahora mismo no puedo, pero esta tarde intento escribir el código. Algo así como:

[code linenumbers=true syntax=gambas]LetraMay=ucase(Letra)
LetraMin=lcase(Letra)
 sql = Subst("Select * from DatosPersonas where nombrePer like '&1%' or nombrePer like '&2%' order by nombrePer asc", LetraMay, LetraMin)
[/code]

Es que no tengo claro si las vocales tildadas y la ñ deben emplearse con la clase STRING o directamente con lcase o ucase.


-----------------------------------
v3ctor
Martes, 20 Septiembre 2016, 13:25

Re: Problema Con Consulta Sqlite Con La Letra ñ
-----------------------------------
[quote user="Grandamakulo" post="34486"]Se me ocurre a «botepronto» añadir una condición «O» de búsqueda, realizando en el primer argumento LCASE y en el segundo UCASE. Ahora mismo no puedo, pero esta tarde intento escribir el código. Algo así como:

[code linenumbers=true syntax=gambas]LetraMay=ucase(Letra)
LetraMin=lcase(Letra)
 sql = Subst("Select * from DatosPersonas where nombrePer like '&1%' or nombrePer like '&2%' order by nombrePer asc", LetraMay, LetraMin)
[/code]

Es que no tengo claro si las vocales tildadas y la ñ deben emplearse con la clase STRING o directamente con lcase o ucase.[/quote]

bueno lo de la ñ quedo resuelto.


[code linenumbers=false syntax=gambas]    LetraMin = String.LCase(Letra)[/code]  esto funciona

[code linenumbers=false syntax=gambas]LetraMin=lcase(Letra)[/code] esto no funciona.

ahora paso a tratar los tildes, es decir cuando a clic en la A... deben aparecer

A
a
á
Á

saludos y gracias, cuando tenga novedades las escribo.


-----------------------------------
v3ctor
Martes, 20 Septiembre 2016, 13:46

Re: Problema Con Consulta Sqlite Con La Letra ñ
-----------------------------------
muchas gracias por tu ayuda Grandamakulo

tema resuelto, dejo rutina para ejemplo....

[code linenumbers=false syntax=gambas]Public Sub FiltrarPersonasPorLetra(Letra As String) As Result
  Dim r As Result
  Dim sql, sql2, LetraMay, LetraMin, TildeMin, TildeMay As String
  Dim sqlLarga As Boolean
  
    LetraMay = UCase(Letra)
    LetraMin = String.LCase(Letra)
     
    Select Case Letra
      Case "A"
        TildeMin = "á"
        TildeMay = "Á"
        sqlLarga = True
      Case "E"
        TildeMin = "é"
        TildeMay = "É"
        sqlLarga = True
      Case "I"
        TildeMin = "í"
        TildeMay = "Í"
        sqlLarga = True 
      Case "O"
        TildeMin = "ó"
        TildeMay = "Ó"
        sqlLarga = True 
      Case "U"
        TildeMin = "ú"
        TildeMay = "Ú"
        sqlLarga = True 
      Case Else
        
    End Select
    
    If sqlLarga Then
      sql2 = "nombrePer like '&1%' or nombrePer like '&2%' or nombrePer like '&3%' or nombrePer like '&4%' order by nombrePer asc"
      sql = Subst("Select * from DatosPersonas where " & sql2, LetraMay, LetraMin, TildeMin, TildeMay) 
    Else
       sql = Subst("Select * from DatosPersonas where nombrePer like '&1%' or nombrePer like '&2%' order by nombrePer asc", LetraMay, LetraMin)
    Endif
  
    r = fPersonas.CX_personas.Coneccion.Exec(sql) 
          
    Return r
  
End[/code]


-----------------------------------
jsbsan
Martes, 20 Septiembre 2016, 19:03

Re: Problema Con Consulta Sqlite Con La Letra ñ[Resuelto]
-----------------------------------
Gracias V3ctor, por compartir la solución que has encontrado.


