问题 如何在sqlite3中打开内存数据库文件


我在一个无法访问磁盘的系统上。我的C程序在内存中有一个有效的小型sqlite3文件(通过网络接收)的内容。我想使用sqlite3的C API打开并访问此文件(只读很好)。

我该怎么做呢?我知道我可以创建一个空的内存数据库

sqlite3_open(":memory:", &foo)

但有没有办法打开我现有的数据库?我没有创建ram磁盘的权限,但也许是沿着这些线路的东西?谢谢。


2732
2018-05-07 21:09


起源



答案:


这里的代码示例(在C中):

http://www.mail-archive.com/sqlite-users@sqlite.org/msg15929.html


11
2018-05-07 21:27



这很有用,虽然(对于其他人稍后阅读),实际的代码是: mail-archive.com/sqlite-users@sqlite.org/msg15905.html  我很遗憾实际上无法使用这个,因为我的程序实际上是在python中运行(在“谷歌应用程序引擎”上运行,不允许C扩展)使用python的sqlite接口...我在我的问题中使用了C试图简化问题。谢谢。
更新2:显然谷歌应用程序引擎的python环境甚至没有sqlite3模块,所以我原来的问题背后的动机是毫无意义的
当你使用Python时,为什么要明确地说“我想使用sqlite3的C API”? - Matthew Flaschen
因为在python中完成的任何事情也可以在C中完成而不是相反吗?我知道这是一个长镜头,所以我想尽可能广泛地投射。 C解决方案将来可能仍然派上用场。


答案:


这里的代码示例(在C中):

http://www.mail-archive.com/sqlite-users@sqlite.org/msg15929.html


11
2018-05-07 21:27



这很有用,虽然(对于其他人稍后阅读),实际的代码是: mail-archive.com/sqlite-users@sqlite.org/msg15905.html  我很遗憾实际上无法使用这个,因为我的程序实际上是在python中运行(在“谷歌应用程序引擎”上运行,不允许C扩展)使用python的sqlite接口...我在我的问题中使用了C试图简化问题。谢谢。
更新2:显然谷歌应用程序引擎的python环境甚至没有sqlite3模块,所以我原来的问题背后的动机是毫无意义的
当你使用Python时,为什么要明确地说“我想使用sqlite3的C API”? - Matthew Flaschen
因为在python中完成的任何事情也可以在C中完成而不是相反吗?我知道这是一个长镜头,所以我想尽可能广泛地投射。 C解决方案将来可能仍然派上用场。