所有这些在 Windows 上都很好用(完全相同的代码)。在 OS X 上没有那么多。我知道 iOS 和 SQLite 的其他问题,但这仅适用于 OS X 10.8 和 Xcode 4.4.1。
我有一个 SQLite 数据库,它可以很好地用于内存数据库,但在写入文件时却不行。奇怪的是,我可以将内存中的数据库备份到一个文件中就好了。
但是等等,还有更多...
我可以在文件数据库上创建表,当我查看它们时它们会正确显示。但是,当我尝试 a 时SELECT name FROM sqlite_master
,它什么也不返回。如果我尝试从表中插入或查询任何内容,则会收到未找到表的错误。就好像它甚至找不到它刚刚做了什么。
例如:
std::string filename = "test.db";
sqlite3* database = nullptr;
sqlite3_open(filename.c_str(), &database);
// ...
// Create tables...works
// Query from sqlite_master...broken
不过,做同样的事情:memory:
效果很好。
有任何想法吗?