我在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错误。
任何人都可以帮助我。 提前谢谢。
答案 0 :(得分:0)
无法打开只读WAL数据库。开放流程必须具有#34;
-shm
" wal-index与数据库关联的共享内存文件(如果该文件存在),或者对包含数据库文件的目录进行写访问,如果"-shm
"文件不存在。
如果在WAL模式下重新打开数据库,则需要相同的写权限。