Irgendwie werden die Fragezeichen in der Abfrage nicht ersetzt und ich kann nicht herausfinden, warum.
ich bekomme immer die Abfrage (sah in während des Debuggens):Android SQL Query() ersetzt kein Fragezeichen
SELECT Nachricht, Zeitstempel
VON chatMessage
WHERE chatId =?
ORDER BY Zeitstempel ASC
LIMIT 5
in dem folgenden Code:
public ArrayList<String> queryLastMessages(String chatId, int count){
SQLiteDatabase db = new DatabaseHelper(context).getReadableDatabase();
String[] columns = {
COLUMN_NAME_CHAT_MESSAGE,
COLUMN_NAME_TIMESTAMP
};
String selection = COLUMN_NAME_CHAT_ID + " = ?";
String[] selectionArgs = {
chatId
};
// ToDo: Ascending or Descending?
Cursor cursor = db.query(
TABLE_CHAT_MESSAGE,
columns,
selection,
selectionArgs,
null,
null,
COLUMN_NAME_TIMESTAMP + " ASC",
String.valueOf(count));
cursor.moveToFirst();
ArrayList<String> arrayList = new ArrayList<>();
if(cursor.getCount() != 0){
while(!cursor.isAfterLast()){
arrayList.add(cursor.getString(0));
cursor.moveToNext();
}
}
return arrayList;
}
Irgendwelche Ideen, was ich falsch gemacht habe? Danke für Ihre Hilfe.
Ray
* irgendwie die Fragen in der Abfrage markieren sind * nicht ersetzt ??? es wird nie ersetzt ... so funktioniert die Parameterbindung ... – Selvin
Funktioniert die Abfrage *? –
@Selvin: Danke für Ihren Hinweis. Aus diesem Grund fand ich das eigentliche Problem: D => Parameter chatId war falsch – Ayox