Spanish ERROR BUSCANDO EN BASE DE DATOS

neocops

New Member
Muy buenas, un placer tener algo en castellano como referencia!!!!!
Tengo un problema con una base de datos...
A ver, tengo dos Activity, en el primero (Main) pilla una variable publica (buscar) de un TextBox y tras pulsar un botón se abre el segundo Layoud y su Activity.
En este segundo se ejecuta una consulta SQL y deberian salir aquellas filas de la base de datos que concuerden con la variable.

c=s.ExecQuery("SELECT NORMA, ARTICULO, TEXTO, SANCION, REDUCCION, PUNTOS FROM codice_trafico where TEXTO='" + Main.buscar + "' ORDER BY NORMA ASC")


La cosa es que no se abre y da error en esta linea.

¿Como seria la construcción de la Query¿?¿?

UN DIA DESPUES ......

He cambiado la instruccion por esta

c=s.ExecQuery("SELECT NORMA, ARTICULO, TEXTO, SANCION, REDUCCION, PUNTOS FROM codice_trafico where NORMA='" & Buscar2 & "' ORDER BY NORMA ASC")
En este caso si me funciona, ya que se que en ese campo solo hay esots valores (CIRCULACION, SEGURO, VEHICULO) y tras meter CIRCULACION pues me salen perfectamente.

El problema viene cuando yo busco dentro de un campo que tiene un texto como por ejemplo:

Circular sin llevar el casco protector

Y yo quiero buscar todos los campos con la palabra CASCO que le paso por variable

¿Alguna ayuda?
Caracteres comodin¿?¿?¿?
 
Last edited:

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas.
Ante todo, mirate la guia de referencia, estás intentado concatenar con el signo + cuando el operador de cadena es el &. Debería ir asi:
B4X:
c=s.ExecQuery("SELECT NORMA, ARTICULO, TEXTO, SANCION, REDUCCION, PUNTOS FROM codice_trafico where TEXTO='" & Main.buscar & "' ORDER BY NORMA ASC")

B4X es muy parecido a Visual Basic, pero NO es Visual Basic.
Hay una serie de conceptos que vienen en las guias que, en mi opinión, deberias tener claros antes de ponerte a "pegarte" con el programa.
También te vendrían bien unas guias sobre lenguaje SQL, puesto que necesitas el caracter comodin %, en tu caso, deberías cambiarlo por:
B4X:
c=s.ExecQuery("SELECT NORMA, ARTICULO, TEXTO, SANCION, REDUCCION, PUNTOS FROM codice_trafico where TEXTO like '%" & Main.buscar & "%' ORDER BY NORMA ASC")

Un saludo.
 

neocops

New Member
Muchas Gracias Descartex!!!!!! Makinon!!!!!
Lo del signo "+" ya me di cuenta por eso despues lo cambie por NORMA='" & Buscar2 & "', pero desconocia lo del % y el LIKE.
Muchas gracias. funciona perfectamente.
 
Top