Sqlite3 проблема с iPhone SDK - PullRequest
0 голосов
/ 21 февраля 2011

Я реализую некоторый код для чтения и записи базы данных sqlite3.Чтение базы данных работает нормально, отображение строки не является проблемой.Проблема в том, чтобы вставить новую строку.По некоторым причинам это просто не работает, sqlite не возвращает ошибку после выполнения SQL.

if( sqlite3_prepare_v2(db, "INSERT INTO `items` (`itemID`, `itemName`) VALUES (2, 'helloWorld?')", -1, &statement, NULL) != SQLITE_OK)
    {
        NSAssert1(0, @"Error, unable to modify database",sqlite3_errmsg(db));
    }

db и оператор:

sqlite3 *db = [RootViewController newDatabaseConnection];
    sqlite3_stmt *statement = nil;

Также я знаю, что есть фреймворкназывается Core data, поэтому, пожалуйста, ответов нет: использовать данные ядра

Файл базы данных "AppName.sqlite3" находится не в основной папке приложения, а в папке документов, поэтому он должен быть редактируемым

Мой синтаксис SQL в порядке, попытался добавить элемент с помощью командной строки.Там все отлично работает.

1 Ответ

1 голос
/ 21 февраля 2011

Насколько я знаю, подготовка оператора фактически не выполняет его. Вам нужно вызвать sqlite3_step() и передать подготовленный оператор для выполнения SQL.

В качестве руководства, вы должны подготовить утверждение и просмотреть результаты, а затем завершить утверждение, когда вы закончите с ним. Затем, когда вы закончите с подключением к БД, вы можете закрыть его.

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