sqlite3_open总是返回SQLITE_OK?

say*_*guh 4 sqlite objective-c

对此感到好奇......似乎即使我将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");
Run Code Online (Sandbox Code Playgroud)

勿绮语*_*勿绮语 7

如果数据库尚不存在,则为您创建数据库.


Ras*_*oul 6

像这样打开数据库:

std::string filename("mydatabase.db");
sqlite3 *db;
int rc = sqlite3_open_v2(filename.c_str(), &db, SQLITE_OPEN_READWRITE, NULL);
Run Code Online (Sandbox Code Playgroud)

然后,如果数据库文件不存在,它将返回错误代码(14).但是,如果文件存在但不是有效的数据库,则返回SQLITE_OK!