selectionArgs in SQLiteQueryBuilder funktioniert nicht mit Ganzzahlwerten in Spalten

Ich versuche, einige Daten aus der Datenbank auszuwählen, und ich habe zwei Codeschnitte, um dies zu tun:

cursor = builder.query(db,
                    new String[]{"col1", "col2", "col3"},
                    "id = ?", new String[]{getSID(db)}, null, null, null);

und

cursor = builder.query(db,
                    new String[]{"col1", "col2", "col3"},
                    "id = " + getSID(db), null, null, null, null);

Der Unterschied besteht darin, dass der erste laut Dokumentation korrekter zu sein scheint, aber er funktioniert auch nicht - der Cursor ist leer. Anstelle des zweiten erhalte ich alle Daten, die ich benötige.

Also habe ich versucht, verschiedene SQL-Abfragen auf meinem PC mit einer Kopie der Datenbank auszuführen, und das habe ich:

SELECT col1, col2, col3 FROM SomeTables WHERE (id = '42')

Dieser funktioniert nicht (und diese Abfrage entspricht offensichtlich der Abfrage, die vom ersten Codebeispiel generiert wurde)

SELECT col1, col2, col3 FROM SomeTables WHERE (id = 42)

Und dieser funktioniert gut (entspricht der Abfrage aus dem zweiten Codebeispiel).

Wie ich weiß, sollte SQLite die Typumwandlung automatisch durchführen, aber etwas ist schiefgegangen und ich weiß nicht warum. Haben Sie Ideen, wie das erste Codebeispiel repariert werden kann? (Oder vielleicht eine Datenbank?)

Wenn es darauf ankommt, ist hier vereinfachtCREATE Skript der Tabelle mitid Feld:

CREATE TABLE SomeTable ( ID PRIMARY KEY, col1, col2, [...] )

UPD: Übrigens gibt getSID (db) String Object zurück.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage