Я новичок в iphone и sqlite и делаю некоторые уроки.
Я создал один метод, который сохраняет некоторую временную информацию в моей базе данных.
Теперь, когда я на контроллере firstView моего приложения, я дважды вызывал этот метод.Он хранит данные дважды в конкретной таблице.Теперь я перешел к SecondViewController и там у меня есть новый объект sqlite3 в заголовочном файле, и я снова скопировал этот метод в SecondViewController.Теперь, когда я вызываю этот метод во втором ViewController, он выдает мне следующую ошибку:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error while inserting data. 'database is locked''
мой код:
-(void)storeTemp
{
SchoolFocusIPadAppDelegate *delegate = (SchoolFocusIPadAppDelegate *)[[UIApplication sharedApplication] delegate];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"sfocusDB.sqlite"];
if(sqlite3_open([path UTF8String], &databases) == SQLITE_OK){
//const char *sql = "select * from animal";
const char *sql = "insert into groups(id, groupid, name, desc , createdon,createdby) Values(?,?,?,?,?,?)";
sqlite3_stmt *add;
if(sqlite3_prepare_v2(databases, sql, -1, &add, NULL) == SQLITE_OK){
NSLog(@"Connection Successful");
NSLog(@"***Storing START on Database ***");
sqlite3_bind_text(add, 2, [[NSString stringWithFormat:@"Temp Group Dont Open"] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(add, 3, [[NSString stringWithFormat:@"kjhasd"] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(add, 4, [[NSString stringWithFormat:@"asdas"] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(add, 5, [[NSString stringWithFormat:@"asdsa"] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(add, 6, [[NSString stringWithFormat:@""] UTF8String], -1, SQLITE_TRANSIENT);
NSLog(@"***Storing END on Database ***");
if(SQLITE_DONE != sqlite3_step(add))
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(databases));
else {
NSLog(@"YES THE DATA HAS BEEN WRITTEN SUCCESSFULLY");
}
}
sqlite3_finalize(add);
}
sqlite3_close(databases);
}
Пожалуйста, помогите мнедрузья.М действительно застрял.
Большое спасибо