如题,不适用fmdb,直接用原生的sqlite3函数,怎么才能知道一个表是否已经存在呢?
目前sqlite3普通的增删查改没什么问题,但是为了进一步封装,我把表的名字抽出来了以供外部调用接口的时候自定义名字,现在纠结的地方在于,清除一个表的数据和删掉一个表,我打算加一个方法来判断传入的表名是否已经存在,如果不存在则给出提示。目前卡在了这一步,网上找到的方法基本都是用FMDB的,纯sqlite3有一个方法,我试了下不能用,特来请教各位,如何判断呢?
我自己写的方法:
- (BOOL)isTableExist:(NSString *)aTableName
{
char *err;
NSString *judgeString = [NSString stringWithFormat:@"SELECT COUNT(*) FROM sqlite_master where type ='table' and name = '%@'",aTableName];
const char *sql_stmt = [judgeString UTF8String];
int result = sqlite3_exec(_database, sql_stmt, NULL, NULL, &err);
if(result == SQLITE_OK)
{
// 怎么判断数量?
return YES;
}
NSLog(@"sql执行错误:%s",err);
return NO;
}
附上网上不能用的代码:
http://blog.csdn.net/xxc88888/article/details/9495491
该链接的第三个方法,感觉原博主还没有理解写的那条SQL语句的意思。
个人认为,执行该SQL语句后,返回的应该是执行的状态,是否成功或者有错误,而不是我们所要的数据中该表的数量,那我怎么才能知道数据中该表的数量呢?
目前sqlite3普通的增删查改没什么问题,但是为了进一步封装,我把表的名字抽出来了以供外部调用接口的时候自定义名字,现在纠结的地方在于,清除一个表的数据和删掉一个表,我打算加一个方法来判断传入的表名是否已经存在,如果不存在则给出提示。目前卡在了这一步,网上找到的方法基本都是用FMDB的,纯sqlite3有一个方法,我试了下不能用,特来请教各位,如何判断呢?
我自己写的方法:
- (BOOL)isTableExist:(NSString *)aTableName
{
char *err;
NSString *judgeString = [NSString stringWithFormat:@"SELECT COUNT(*) FROM sqlite_master where type ='table' and name = '%@'",aTableName];
const char *sql_stmt = [judgeString UTF8String];
int result = sqlite3_exec(_database, sql_stmt, NULL, NULL, &err);
if(result == SQLITE_OK)
{
// 怎么判断数量?
return YES;
}
NSLog(@"sql执行错误:%s",err);
return NO;
}
附上网上不能用的代码:
http://blog.csdn.net/xxc88888/article/details/9495491
该链接的第三个方法,感觉原博主还没有理解写的那条SQL语句的意思。
个人认为,执行该SQL语句后,返回的应该是执行的状态,是否成功或者有错误,而不是我们所要的数据中该表的数量,那我怎么才能知道数据中该表的数量呢?