Ошибка sqlite3 "не ошибка" на iPhone SDK - PullRequest
2 голосов
/ 16 июля 2009

Я получаю сообщение об ошибке «не ошибка» на iPhone SDK, я потратил целый день на его устранение. SQLite версия 3.4.0

sqlite3_step(compiledStatement)

Таблица, которую я использую в запросе, содержит только одну строку. Возвращает 100 ..?

sqlite3_errmsg( database )

Эта строка дает мне вышеуказанную ошибку.

Я создал базу данных и таблицы в ней с помощью команд терминала и поместил ее в папку ресурсов приложения, а также в путь к документам, что выполняется динамически.

while(sqlite3_step(compiledStatement) == SQLITE_ROW)

Этот цикл никогда не выполняется в моем коде, внутри которого я получаю все значения.

Я думаю, что этой информации достаточно, дайте мне знать. Кто-нибудь знает, где у меня проблемы ..?

спасибо заранее

Ответы [ 2 ]

3 голосов
/ 16 июля 2009

Это довольно просто на самом деле. Взгляните на документацию sqlite3_step . Как правило, SQLITE_ROW говорит вам, что он успешно завершил и , что можно получить другую строку, снова вызвав sqlite3_step В последнем ряду вы получите SQLITE_DONE, что будет означать "не ошибка".

1 голос
/ 16 июля 2009

Я думаю, у вас проблема в том, что вы ожидаете, что sqlite3_step вернет значение из скомпилированного оператора. Он не делает этого, он возвращает код ошибки, в данном случае 100 (SQLITE_ROW), что означает, что запрос был успешным и может быть больше данных, поэтому вам следует вызвать sqlite3_step, как только вы закончите получать данные с этого шага запрос.

Если вы хотите увидеть фактические возвращенные данные этого шага запроса, вам нужно использовать различные API sqlite3_column для извлечения данных из шага.

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