是否可以在 sqlite3 中READ_ONLY数据库切换到 WAL 日记模式
Is it possible to switch READ_ONLY database to WAL journaling mode in sqlite3
我已经在READ_ONLY模式下打开了一个数据库连接。是否可以在运行时将数据库连接切换到日记模式 = WAL?
我正在使用以下代码切换到 WAL 模式
sqlite3* ppDb;
int res = sqlite3_open_v2("test.db",&ppDb,SQLITE_OPEN_READONLY,NULL,NULL, 0, NULL);
if(SQLITE_OK==res)
{
rc = sqlite3_exec(m_dbHandle, "PRAGMA zipvfs_journal_mode=wal;", NULL,NULL, NULL))
}
sqlite3_exec语句后出现磁盘 I/O 错误。
谁能帮我解决这个问题。提前谢谢。
文档说:
无法打开只读 WAL 数据库。打开进程必须具有与数据库关联的"
-shm
"wal-index共享内存文件的写入权限(如果该文件存在(,或者如果"-shm
"文件不存在,则对包含数据库文件的目录具有写入权限。
如果在 WAL 模式下重新打开数据库,则需要相同的写入权限。
相关文章:
- 查询SQLite数据库中的日期
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在ArangoDb AQL查询中指定数据库
- 从数据库实时显示QT c++中的数据
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 无法在C++中建立与MySQL数据库的连接
- 将类实现到数据库程序中
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 调试编译的服务器在数据库打开时崩溃
- C++变量mysql_query到数据库
- LMDB:在有限的内存系统中打开大型数据库
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- 以只读模式打开数据库时SQLITE_CANTOPEN错误
- 如何使用SQLite将数据库中的值导出为C / C++中的字符串或字符?
- 如何在Qt中从数据库中检索二进制数据?
- 如何从网站获取数据并将其传输到数据库?
- 在装有 CLion 的 Mac 上使用 C++ 连接到 MySQL 数据库时出现问题
- Qt5 从 MySQL 数据库中选择数据
- 是否可以在 sqlite3 中READ_ONLY数据库切换到 WAL 日记模式