对此感到好奇......似乎即使我将pathForResource更改为@“fadfdasfa”或其他不存在的名称,我仍然记录“数据库已打开”?
sqlite3 * myDatabase;
NSString *path = [[NSBundle mainBundle] pathForResource:@"carsdatabase" ofType:@"db"];
if (sqlite3_open([path UTF8String], &myDatabase) == SQLITE_OK)
NSLog(@"Database Opened");
else
NSLog(@"Failed to Open");
答案 0 :(得分:7)
如果数据库尚不存在,则为您创建数据库。
答案 1 :(得分:6)
像这样打开数据库:
std::string filename("mydatabase.db");
sqlite3 *db;
int rc = sqlite3_open_v2(filename.c_str(), &db, SQLITE_OPEN_READWRITE, NULL);
如果数据库文件不存在,它将返回错误代码(14)。但是,如果文件存在但不是有效数据库,则返回SQLITE_OK
!
答案 2 :(得分:1)
这就像在终端中运行以下内容一样:
sqlite3 test.db
如果不存在,则会为您创建。因此,每次更改名称时都只需创建一个新数据库,并且可能会在主包中看到它。