是否可以以只读模式连接到内存中的sqlite数据库?
Is it possible to connect to an in-memory sqlite db in Read-Only mode?
我知道我可以在sqlite3_open_v2()
中使用file:DB_NAME?mode=memory&cache=shared
打开多个连接到内存sqlite数据库。
我打开2个连接到内存数据库。一个标志为SQLITE_OPEN_URI | SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE
,另一个标志为SQLITE_OPEN_READONLY | SQLITE_OPEN_URI
。
问题是即使连接是只读的,sqlite也允许我修改数据库。
是否有办法将连接设置为只读?我应该编写自己的VFS来完成它吗?
SQLITE_OPEN_READONLY
标志影响数据库访问文件和处理事务的方式。
在shared-cache模式下,多个连接在文件系统接口上显示为单个连接。因此,它们共享文件访问/事务设置。
要防止连接启动任何写事务,请使用PRAGMA query_only.
相关文章:
- 查询SQLite数据库中的日期
- 连接到 URL Sqlite 数据库C++
- 在SQLITE数据库中写入记录需要花费大量时间.如何提高刀片操作效率?
- 如何使用C ++将SQLite数据库中的所有表从一个数据库复制到另一个数据库
- 将数据从 SQLite 数据库保存到变量中
- QT QML:使用.qrc文件将SQLite数据库部署到Android不起作用
- 确定 SQLite 数据库是否已锁定
- 如何在 Windows 上使用 Visual Studio 2017 连接到 C++ 中的 sqlite 数据库?
- 如何在Qt cpp的SQlite数据库中插入变量的值
- 使用 c++ 生成器编译 sqlite 数据库时出错 5.
- 如何在不同的列中插入随机数量的值? 查询.C++.SQlite 数据库
- Qt:如何使用sqlite数据库修改2个表中的数据记录
- QT SQLITE数据库不会打开
- 如何使用现有的 Sqlite 数据库部署 Qt 应用程序
- 如何从Qt使用密码访问Sqlite数据库
- 在C++中创建 Sqlite 数据库
- 在哪里可以在Windows和OS X上存储SQLite数据库
- 使用 qt 从 sqlite 数据库中获取数据
- 如何使用QT在SQLite数据库中插入RadioButton值
- 将特定结果集从Oracle数据库复制到C 中的SQLite数据库的最佳方法