selectionArgs в SQLiteQueryBuilder не работает с целочисленными значениями в столбцах
Я пытаюсь выбрать некоторые данные из базы данных, и у меня есть два фрагмента кода, чтобы сделать это:
cursor = builder.query(db,
new String[]{"col1", "col2", "col3"},
"id = ?", new String[]{getSID(db)}, null, null, null);
а также
cursor = builder.query(db,
new String[]{"col1", "col2", "col3"},
"id = " + getSID(db), null, null, null, null);
Разница между ними заключается в том, что первый документ кажется более правильным в соответствии с документацией, но он также не работает - курсор пуст. Вместо второго - я получаю все данные, которые мне нужны.
Поэтому я попытался выполнить разные запросы SQL на моем компьютере с копией базы данных, и вот что у меня получилось:
SELECT col1, col2, col3 FROM SomeTables WHERE (id = '42')
Этот не работает (и этот запрос, очевидно, равен запросу, сгенерированному первым примером кода)
SELECT col1, col2, col3 FROM SomeTables WHERE (id = 42)
И этот работает нормально (равно запросу из второго примера кода).
Как я знаю, SQLite должен выполнять приведение типов автоматически, но что-то пошло не так, и я не знаю почему. Есть ли у вас какие-либо идеи о том, как можно исправить первый пример кода? (Или, может быть, база данных?)
Если это имеет значение, вот упрощенныйCREATE
скрипт стола сid
поле:
CREATE TABLE SomeTable ( ID PRIMARY KEY, col1, col2, [...] )
UPD: И, кстати, getSID (db) возвращает String Object.