PDA

Ver la Versión Completa : [ CONSULTA ] duda query en SQLITE


Rockero_79
20/05/13, 21:31:52
Buenas noches

Que tal gente?bueno soy nuevo esto de la programación android y tengo una duda sobre un fallo que me esta dando

Esta al hacer una query en la que comparo en el where con una campo text
os lo pongo

public String getDb(String j) {

String[]columns = new String[]{ID_ROW,VALUE,REASON};

Cursor c = nBD.query(N_TABLE, columns, REASON+" = ' "+j+" '",null, null, null, null);

if (c.moveToFirst()) {
c.moveToFirst();
String ver = c.getString(1).toString();
return ver;
}
return "vacio";

}
La verdad es que me estoy volviendo loco porque si comparo con un campo id de tipo"int" que tengo en la tabla no me da ningún problema.
He probado de 3 o 4 formas y nada, por ejemplo

public String getDb(String j) {

String[]columns = new String[]{ID_ROW,VALUE,REASON};
String[]args = new String[]{j};
String sel = "REASON like ?";
Cursor c = nBD.query(N_TABLE, columns, sel,args, null, null, null);

if (c.moveToFirst()) {
c.moveToFirst();
String ver = c.getString(1).toString();
return ver;
}
return "vacio";

}
Y tampoco...
¿Alquien me dice que hago mal?

Gracias

mocelet
20/05/13, 22:06:05
¿Y qué fallo te da? Normalmente el error hasta te dice qué parte de la query está mal

Rockero_79
20/05/13, 22:24:36
¿Y qué fallo te da? Normalmente el error hasta te dice qué parte de la query está mal

Me da un error y se cierra la aplicación luego pongo el texto pero de la query no pone nada eso seguro, ya te digo si comparó con otra campo de la tabla que es numérico va bien, el fallo tiene que estar en la forma de igualar el campo con la variable "j"

mocelet
20/05/13, 22:27:21
Vale, se cierra la aplicación, ¿y cuál es el error que te da? Mira en la consola de texto (bueno, en la pestaña LogCat) qué excepción sale, ¿es una NullPointerException? ¿una SQLiteException? Te dirá la línea del código donde se fuerza el cierre.

providez
21/05/13, 08:24:53
En SQL los campos de tipo TEXT tendrás que compararlos con un valor entre comillas simples (y sin espacios por los lados como en esto que tienes puesto en el primer ejemplo ' "+j+" '"), y los numéricos sin esas comillas. Mira a ver si tiene que ver algo con eso.

Rockero_79
21/05/13, 15:54:11
En SQL los campos de tipo TEXT tendrás que compararlos con un valor entre comillas simples (y sin espacios por los lados como en esto que tienes puesto en el primer ejemplo ' "+j+" '"), y los numéricos sin esas comillas. Mira a ver si tiene que ver algo con eso.

Lo tengo así puesto no? Ahhh le sobran los espacios quieres decirme así '"+j+"'"?

providez
21/05/13, 16:01:54
Lo tengo así puesto no? Ahhh le sobran los espacios quieres decirme así '"+j+"'"?

eso es, no es lo mismo TEXTO = ' hola ' que TEXTO = 'hola'.

Por otra parte, lo que ya te han preguntado, que error te dice el Logcat?

Rockero_79
21/05/13, 17:52:35
eso es, no es lo mismo TEXTO = ' hola ' que TEXTO = 'hola'.

Por otra parte, lo que ya te han preguntado, que error te dice el Logcat?

despues de volverme loco ya lo he resuelto, no se si era por los espacios o que pero ya esta...

hay alguna forma de limpiar el logcat?