Выполнение запроса приводит к исключению «нет такого столбца» - PullRequest
1 голос
/ 16 сентября 2011

Мой запрос

 dbAdapter.selectRecordsFromDB("OmniaDB",new String[]{"imsi","type","msg","length","dt_gen","dt_send"},"type"+"="+"call"+"AND"+"dt_send"+"="+"null",null,null,null,"dt_gen"); 

Исключение составляет

android.database.sqlite.SQLiteException: no such column: callANDdt_send: , while compiling: SELECT imsi, type, msg, length, dt_gen, dt_send FROM OmniaDB WHERE type=callANDdt_send=null ORDER BY dt_gen

Ответы [ 2 ]

1 голос
/ 16 сентября 2011
"type"+"="+"call"+"AND"+"dt_send"+"="+"null"

Ничего из этого не имеет смысла.Избавление от ненужных конкатенаций оставляет

"type = call AND dt_send = null"

, который является недопустимым SQL.Вы не правильно цитируете строку call и не можете сравнить NULL на равенство с чем-либо (включая NULL).

Это более вероятно, что вы должны использовать:

"type = 'call' AND dt_send IS NULL"

Вероятно, есть другие проблемы с беспорядком, который вы опубликовали, но это должно решить хотя бы одну из них.(Например, type может быть зарезервированным словом в SQLite; я не уверен.)

1 голос
/ 16 сентября 2011

Вам не хватает тонны пробелов в "type"+"="+"call"+"AND"+"dt_send"+"="+"null", должно быть "type='call' AND dt_send=null". Почему вы даже используете конкатенацию, когда она должна быть гигантской строкой? В любом случае, после того, как вы это исправите, может быть что-то не так, поскольку я понятия не имею, как выглядят ваши данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...