SQLite3 执行sqlite3_prepare_v2的时候提示“Error:no such table: bookCollect”的原因解析

问题如下:

1、执行SQL编译的时候sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL)的返回值为1,对应Apple的解释是

SQLite3 执行sqlite3_prepare_v2的时候提示“Error:no such table: bookCollect”的原因解析

也就是找不到数据库文件,虽然我在模拟器文件中查看到数据库文件


解释:

这个就是SQLite3的自动处理机制,也就是“if it doesn‘t find the database,it will creat a blank database”,所以模拟器看到的数据库文件只是SQLite3进行编译的时候无法找到数据库文件从而自动创建的一个空的数据库文件。当然走到sqlite3_prepare_v2的时候会提示“Error:no such table: bookCollect”

参考:stack voerflow :stackoverfl(哈哈)ow.com/questions/21756185/sqlite3-prepare-v2-no-such-table


解决方法:

1、这是database的相对路径即可

    NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",KFilename];

2、如果执行SQL语句有错误的时候,可以使用下面的API接口显示详细的错误信息

SQLite3 执行sqlite3_prepare_v2的时候提示“Error:no such table: bookCollect”的原因解析

SQLite3 执行sqlite3_prepare_v2的时候提示“Error:no such table: bookCollect”的原因解析,布布扣,bubuko.com

SQLite3 执行sqlite3_prepare_v2的时候提示“Error:no such table: bookCollect”的原因解析

上一篇:【转】 C#中Finally的一个不太常见的用法


下一篇:SQLite vs MySQL vs PostgreSQL:关系型数据库比较