Проблема с SQLite3 на ipad.Продолжайте получать ошибку «ограничение не выполнено» - PullRequest
1 голос
/ 18 августа 2011

У меня общая проблема с ограничениями. Это моя схема создания таблицы:

CREATE TABLE "Videos" ("CDate" TEXT NOT NULL, "Name" TEXT NOT NULL, "Путь" ТЕКСТ НЕ НУЛЬ)

А это мой код:

-(void)insertVideo:(VPVideo*)video
{
    NSString *foo = [NSString stringWithFormat:@"INSERT INTO Videos(CDate,Name,Path) VALUES ('%@', '%@', '%@')",[video.file creationDate],[video.file name],[video.file path]];
    const char *sql = [foo UTF8String];
    printf("%s",sql);
    sqlite3_stmt *statement;
    // Prepare the statement to compile the SQL query into byte-code
    int sqlResult = sqlite3_prepare_v2(database, sql, -1, &statement, NULL);
    if ( sqlResult!= SQLITE_OK) {
        NSAssert1(0,@"Error While creating add statement. '%d'",sqlite3_errmsg(database));
    }
    if(SQLITE_DONE != sqlite3_step(statement))
    {
        NSAssert1(0,@"Error while inserting data. '%s'",sqlite3_errmsg(database));
    }
    else
        sqlite3_finalize(statement);
        //NSLog(@"id of the last insert is : '%lld'",sqlite3_last_insert_rowid(database));

}

Отладчик обнаруживает ошибку «Ошибка при вставке данных» NSAssert1. Полный отчет таков:

* Ошибка подтверждения в - [DBAccess insertVideo:], /Users/Vasilis/Desktop/Projects/IPhone/TestApp/TestApp/DBAccess.m:157

* Завершение приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Ошибка при вставке данные. 'ограничение не выполнено' '

Надеюсь, я дал вам достаточно информации о проблеме, чтобы вы могли мне помочь. Я уже попробовал следующее.

  • Пробовал вставлять данные через привязку
  • Проверено на значения NULL
  • Дважды менял всю базу данных (не знаю почему, но я подумал попробовать все.)
  • Попробовал оператор вставки в точности так, как он включен firefox sqlite manager и вроде нормально работает

Что, по вашему мнению, идет не так? Я забыл упомянуть, что оператор «выбрать из» отлично работает на ipad.

1 Ответ

0 голосов
/ 19 августа 2011

Исправлено!Проблема заключалась в том, что симулятор Iphone завис и изменял файлы, которые не были сохранены, поэтому мне пришлось удалить скомпилированное приложение из симулятора, заново добавить все файлы и снова скомпилировать очищенный проект.

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