Команда Sqlite3 не будет выполнена - PullRequest
0 голосов
/ 18 июля 2011

Моя проблема в том, что у меня есть программа, работающая с некоторым оператором sql

 const char *sqlStatement = "SELECT lastPlayed FROM Settings;";
    sqlite3_stmt *compiledStatement;
    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) != SQLITE_OK)    {
        NSLog(@"database error");
    }
    if(sqlite3_step(compiledStatement) == SQLITE_ROW){
...
    }     

Моя проблема в том, что с этой командой sql она напишет в nslog ошибку базы данных и не попадет втело моего, если работать с оператором ... если я изменю SQL-оператор, чтобы выбрать имя из сеанса LIMIT??и связать два числа, это будет работать просто отлично.Я проверил команду sql в менеджере sqlite и работает нормально ... любая помощь?в чем может быть проблема?

Update1: обнаружил, что там написано, что такой таблицы нет: Настройки, даже если она у меня есть ... может, это проблема xCode?он не обновит симулятор?

Обновление2 Решено: источником проблемы был симулятор .... Мне пришлось удалить кеш ... спасибо за быстрый ответ.

1 Ответ

0 голосов
/ 18 июля 2011
  1. Используйте функцию API sqlite3_errmsg, чтобы получить сообщение об ошибке и распечатать его в журнале.Это скажет вам, в чем проблема.
  2. Вам не нужно ; в выражении, потому что это просто говорит sqlite3_prepate_v2 игнорировать что-либо после него (возвращает указатель на то, где оно закончилось в последнемаргумент для облегчения запуска сценариев SQL), но это не вызывает проблем.
...