Моя таблица определена следующим образом: CREATE TABLE "Product" ("INTIDER PRIMARY KEY AUTOINCREMENT NOT NULL", "ProID" INTARER NOT NULL, VARCHAR "ProductName" NOT NULL ";у меня есть проблема как: 2011-03-25 15: 43: 08.792 BarCode12 [6698: 207] * Ошибка подтверждения в - [sqlClass addRecord:], / Users / admin / Desktop / BarCode14copy / Classes / sqlClass.m: 121 2011-03-25 15: 43: 08.793 BarCode12 [6698: 207] * Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Ошибка при вставке данных.'ограничение не выполнено' '...
Написанный код: - (void) addRecord: (NSMutableDictionary *) recordDict {
if(addStmt == nil) {
const char *sql = "insert into Product(ProID, BarCode , ProductName ) Values(?,?,?)";
if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
}
NSInteger recordId = [[recordDict objectForKey:@"ProID"] intValue];
NSLog(@"%d",recordId);
sqlite3_bind_int(addStmt, 1,recordId);
sqlite3_bind_text(addStmt, 2, [[recordDict objectForKey:@"BarCode"] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 3, [[recordDict objectForKey:@"ProductName"] UTF8String], -1, SQLITE_TRANSIENT);
if(SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
else
sqlite3_last_insert_rowid
rowID = sqlite3_last_insert_rowid(database);
NSLog(@"last inserted rowId = %d",rowID);
sqlite3_reset(addStmt);
}
Я такжепопытался без ограничений, но та же проблема будет продолжаться ..
если согласованность удалена, то она показывает ошибку «База данных заблокирована». Как мы можем удалить эту ошибку и как вставить данные в базу данных?