Проверка результатов запроса sqlite - PullRequest
1 голос
/ 26 февраля 2009

Как проверить, возвращал ли sqlite-запрос что-либо, прежде чем перестать просматривать результаты.

//see if there are results and do something if not
while(sqlite3_step(selectstmt) == SQLITE_ROW) 
{ /*process on reults */}

1 Ответ

2 голосов
/ 26 февраля 2009

Я думаю, что я что-то упустил в вашем вопросе, если он возвращает SQLITE_ROW, то у него есть готовая строка для чтения.

API находится на http://www.sqlite.org/capi3ref.html#sqlite3_step

Вы можете получить доступ к этим данным через функции столбца:

http://www.sqlite.org/capi3ref.html#sqlite3_column_blob

Таким образом, вы в основном делаете все правильно, в то время как sqlite3_step возвращает SQLITE_ROW, у вас все еще есть данные для доступа.

// Разъяснение

SQLite извлекает и выдает строки по одной за раз, используя sqlite3_step, вызывая его, чтобы не получить весь набор результатов. Так что вы не узнаете, пока не позвоните step, собираетесь ли вы получать данные.

Мне приходилось совсем немного использовать SQLite, когда я работал на встроенных устройствах, но всегда через приличный DAL. Я не большой поклонник его API, но я думаю, он легкий.

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