У меня есть такая таблица:
1|EC7599A156DB1913AD9DE9A3A9540624B05683EC|Bar|World's Greatest|http://www.foo.com
2|EC7599A156DB1913AD9DE9A3A9540624B05683EC|Bar|World's Greatest|http://www.foo.com
3|EC7599A156DB1913AD9DE9A3A9540624B05683EC|Bar|World's Greatest|http://www.foo.com
Схема для таблицы:
CREATE TABLE IRChannels (
ChannelId INTEGER PRIMARY KEY,
ChannelHash BLOB NOT NULL,
ChannelTitle TEXT NOT NULL,
ChannelDesc TEXT,
ChannelLink TEXT);
Я пытаюсь выполнить оператор SELECT
, используя следующий код:
if (mReadDatabase != null) {
String[] columns = new String[]{COL_CHANNEL_ID};
String selection = COL_CHANNEL_HASH + "='" + hash + "'";
try {
Cursor cursor = mReadDatabase.query(
TABLE_CHANNELS_NAME, // Table Name
columns, // Channel ID
selection, // WHERE ChannelHash
null, // = hash
null, // Don't Group
null, // Don't filter by Groups
null, // Use default Sort Order
String.valueOf(1)); // LIMIT 1
if (cursor.moveToFirst()) {
return cursor;
} else
return null;
}
Проблема в том, что я никогда не вижу никаких данных в возвращенном курсоре.Если я попробую следующую команду в оболочке sqlite3, я смогу получить данные:
select channelid
from irchannels
where channelhash='EC7599A156DB1913AD9DE9A3A9540624B05683EC'
limit 1
Чего мне не хватает?
ОБНОВЛЕНИЕ: Iпопытался изменить мой код на использование необработанного запроса, так что без разницы:
if (mReadDatabase != null) {
String selection = COL_CHANNEL_HASH + "='" + hash + "'";
final String rawQuery = "SELECT " + COL_CHANNEL_ID +
" FROM " + TABLE_CHANNELS_NAME + " " +
" WHERE " + selection +
" LIMIT 1;";
Cursor cursor = mReadDatabase.rawQuery(rawQuery, null);
}