다음은 기존 데이터베이스에 테이블을 추가하는 코드입니다. 내 코드는 sqlite3_prepare_v2
의 성공 콜백에 도달하고 table created
로그를 제공하지만 터미널을 사용하여 sqlite 데이터베이스를 열면 생성 된 테이블이 없다는 것을 알 수 있습니다. 내 데이터베이스 테이블의 이름은이에 의해 프라그으로 fz1.sqlite
을 선언 : #define kDBName @"fz1.sqlite"
왜 테이블이 ios의 sqlite에 만들어지지 않았습니까?
-(sqlite3 *)mydb:(NSString *)query{
static sqlite3 *database;
static sqlite3_stmt *enableForeignKey;
if (database == NULL) {
sqlite3 *newDBconnection;
// first get the path for the document directory of the application
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dbpath = [paths objectAtIndex:0];
NSString *path = [dbpath stringByAppendingPathComponent:kDBName];
if (sqlite3_open([path UTF8String], &newDBconnection) == SQLITE_OK) {
NSLog(@"Database Successfully Opened :)");
database = newDBconnection;
if (sqlite3_prepare_v2(database,[query UTF8String], -1, &enableForeignKey, NULL) != SQLITE_OK) {
NSLog(@"ERROR IN PRAGMA!");
}
else{
sqlite3_exec(database, [query UTF8String], NULL, NULL, NULL);
NSLog(@"faiz's table created");
}
sqlite3_finalize(enableForeignKey);
} else {
NSLog(@"Error in opening database :(");
database = NULL;
}
}
return database;
}
sqlite3은 요청할 때 무엇이 잘못되었는지 알려줍니다. 그렇게하면 문제를 해결할 수 있습니다. – trojanfoe
DB를 여는 곳을 인쇄하십시오. SQLite 초보자를위한 확률은 당신이 생각하는 곳에 파일을 열지 않고있는 50:50보다 낫습니다. –