我想打开并以只读方式阅读SQLite .db文件。在此期间,我保证没有其他人会触及它(也许仅限于只读)。从SQLite3那里,我需要的是它永远不会向磁盘写入任何东西(具体包括这些这里所描述的内容),并且不会对该文件使用任何文件系统锁定。这样咨询太多了吗?
unix-none
VFS来禁用所有锁定。xSetSystemCall
覆盖锁定系统调用。sqlite_vfs_*
API获取现有的VMS,然后仅使用自己的锁定函数创建一个新的vtable
,该函数不执行任何操作。因此,这应该非常简单。 - ArtyomVFS没有可以注入的Lock方法。因此,没有直接的方法来注入虚拟的LockFile和LockFileEx方法。
这些方法被引用在sqlite3_io_methods(winIoMethod)中,似乎很难在运行时修改而不改变SQLite源代码。
所以,如果我理解正确,VFS不是正确的方向吗?还是说它是?
也许可以使用只读用户?我不知道在SQL Lite中是否存在这样的角色。