sqlite 检测数据库何时被C#中的外部程序更改

g52tjvyc  于 2022-12-13  发布在  SQLite
关注(0)|答案(1)|浏览(177)

当第三方应用程序对我们双方都连接的SQLITE数据库进行更改时,我的软件是否可能收到通知?

9gm1akwq

9gm1akwq1#

您可以定期检查PRAGMA data_version输出,并将其与pragma返回得上一个值进行比较,以查看在两次检查之间是否有另一个数据库连接对其进行了修改.
引用文档:
“PRAGMA data_version”命令提供数据库文件已被修改的指示。在存储器中保存数据库内容或在屏幕上显示数据库内容的交互式程序可以使用PRAGMA data_version命令来确定它们是否需要刷新并重新加载它们的存储器或更新屏幕显示。
如果在此期间通过任何其他连接将更改提交到数据库,则从同一连接两次调用“PRAGMA data_version”返回的整数值将不同。对于在同一数据库连接上进行的提交,“PRAGMA data_version”值不变。“PRAGMA data_version”的行为对于所有数据库连接都相同,包括单独进程中的数据库连接和共享高速缓存数据库连接。
“PRAGMA data_version”值是每个数据库连接的本地属性,因此在不同的数据库连接上两次并发调用“PRAGMA data_version”返回的值通常是不同的,即使底层数据库是相同的。只有比较同一数据库连接在两个不同时间点返回的“PRAGMA data_version”值才有意义。

相关问题