Tengo el siguiente código que crea mi tabla. Insertar datos en él que se parece a este códigoProblema con SQL Query Android Donde Cláusula
_id date recordName total
--------------------------------------
7 2011 TestMaxRecord 5
Java:
public static final String KEY_ROWID = "_id";
public static final String KEY_DATE = "date";
public static final String KEY_TOTAL = "total";
public static final String KEY_RECORD_NAME = "recordName";
private static final String DATABASE_CREATE_RECORDS = "create table " + DATABASE_TABLE_RECORDS + " ("
+ KEY_ROWID + " integer primary key autoincrement, "
+ KEY_DATE + " text not null, "
+ KEY_RECORD_NAME + " text not null, "
+ KEY_TOTAL + " text not null);";
public Cursor getRecord(String name) throws SQLException {
return mDb.query(true, DATABASE_TABLE_RECORDS, new String[] {KEY_ROWID, KEY_DATE, KEY_RECORD_NAME, KEY_TOTAL}, KEY_RECORD_NAME + " = " + name, null, null, null, null, null);
}
lanza una excepción cada vez que donde name = "TestMaxRecord" (a pesar de ser los datos allí) con el siguiente error
android.database.sqlite.SQLiteException: hay tal columna: TestMaxRecord:, durante la compilación: SELECT DISTINCT _id, fecha, RecordName, total a partir de los registros donde RecordName = TestMaxRecord
Que me parece que está buscando un título de columna TestMaxRecord
. Soy un novato de Android, pero copié esta porción casi exactamente de un ejemplo (aunque estaba usando int). ¿Hay alguna diferencia entre usar int y Strings en tu consulta?
Sí que funcionó , Gracias. ¿Eso es porque es una cadena? He revisado los recursos en su enlace antes y no ayuda con las cláusulas WHERE. Mucho menos cadenas en las cláusulas WHERE ... al menos que alguna vez he encontrado. – easycheese