在上面的小节中,创建、打开和关闭数据库,可以使用函数sqlite3_open(const char*, sqlite3**)、int sqlite3_open16(const void*, sqlite3**)和int sqlite3_close(sqlite3*)来完成。在本小节将重点介绍如何使用它们。
代码清单12-6展示了如何创建、打开和关闭数据库。代码清单如下:
//声明sqlite3实例变量 sqlite3* sqlDataBase //该函数主要打开数据库myDaDataBase.sql,如果该数据库不存在,则进行创建。 //打开或者创建成功将会返回YES否则将返回FALSE,参数dbName是数据库的//名称 -(BOOL) CreateOrOpen:(NSString *)dbName { //获取用户域覆径信息 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; //*******断用户域是否有数据库dbName************// NSString *path; path = [documentsDirectory stringByAppendingPathComponent:dbName]; NSFileManager *fileManager = [NSFileManager defaultManager]; //如果用户域内有该数据库,则返回YES,否则返回NO BOOL find = [fileManager fileExistsAtPath:path]; //找到数据库文件dbName if (find) { //打开该数据库 如果打开失败,返回NO,否则返回YES if(sqlite3_open([path UTF8String], &sqlDataBase) != SQLITE_OK) { //关闭sqlDataBase,实际上是是释放了它 sqlite3_close(sqlDataBase); return NO; } return YES; } //创建数据库,创建成功返回YES,并且打开数据库,否则返回NO, if(sqlite3_open([path UTF8String], &sqlDataBase) == SQLITE_OK) { return YES; } else { //关闭sqlDataBase,实际上是是释放了它 sqlite3_close(sqlDataBase); return NO; } return NO; }