Comunidad Gambas-es
consulta en SQLite - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html)
+--- Tema: consulta en SQLite (/thread-1553.html)



consulta en SQLite - alberto-moyano - 29-11-2023

Hola gente, estoy haciendo una consulta en SQLite con este código

Código:
  Dim tituloEscapado As String

  tituloEscapado = Replace(txtTITLE.Text, "'", "''")

  Comando = "SELECT * FROM bibtex WHERE title = '" & tituloEscapado & "'"

  Busqueda = Conn.Exec(Comando)

las consultas funcionan bien, salvo que necesito que NO distinga entre mayúsculas y minúsculas, he probado con LOWER para convertir toda la cadena a minúsculas en la consulta, pero no logro el cometido.

Alguna sugerencia.

Gracias de antemano


RE: consulta en SQLite - guizans - 29-11-2023

Hola.

Puede intentar esto:

Código:
busqueda = Conn.Exec("SELECT * FROM  bibtex WHERE title=&1 COLLATE NOCASE", tituloEscapado)

Basicamente estas haciendo una búsqueda sin tener en cuenta si es mayúscula o minúscula.

No se si es la forma correcta o no, pero si necesito una base de datos siempre uso el mismo sistema para que no tenga problemas con las búsquedas. Imaginemos que tengo una base de datos con todos los nombres de los productos que vendo en mi tienda. ¿Como hacer si el usuario le da por introducir un producto que ya está en la base de datos? Pues mi solución (como ya he dicho no se si es la mejor) es tener dos columnas, una con el nombre tal como lo introduce el usuario y la otra columna es con el nombre en minúscula, sin tildes ni eñes ni otros caracteres extraños. Entonces si el usuario intenta introducir un nombre que ya está, me da igual lo introduzca con acentos o sin ellos, con mayúsculas o sin ellas, el programa va a buscar ese nombre siempre de la misma forma. También lo aplico a las búsquedas.

Un saludo.


RE: consulta en SQLite - alberto-moyano - 29-11-2023

Gracias guizans, tu solución es lo que buscaba, mi situación es parecida a lo que planteas, básicamente, yo no controlo como escribe quien busca, entonces puede existir en la base de datos, por ejemplo el título:

Ajuste al plan de estudios vigente

pero otro autor lo busca así

Ajuste al Plan de Estudios Vigente

y necesitaba tener la coincidencia

Gracias nuevamente


RE: consulta en SQLite - guizans - 01-12-2023

Si, lo entiendo, por eso decía que yo creo un campo que contenga el nombre simplemente, solo para las búsquedas, ya que si alguien busca:

Ajuste del plan de estúdios vigente

el resultado de la búsqueda va a ser cero por culpa de ese acento. Por eso yo creo una columna que no es visible para los usuarios que contenga el nombre en minúsculas y sin tildes y así me aseguro que tanto las búsquedas como las consultas no depende de quien las escriba.

Un saludo.