У меня общая проблема с ограничениями. Это моя схема создания таблицы:
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.