【发布时间】:2017-12-29 08:47:57
【问题描述】:
我从http://ch-werner.de/sqliteodbc/ 下载并安装了 SQLite ODBC 驱动程序。在一个问题上效果很好。如果另一个应用程序打开了数据库,我似乎无法获得排他锁。
我正在使用一个名为 Altium 的 CAD 应用程序。我正在尝试在 SQLITE 中构建一个原型零件数据库来存储数据。我安装了上面提到的 ODBC 驱动程序,我可以很好地获取数据。问题是,如果我尝试在 SQLITEStudio 或 DB Browser for SQLITE 等应用程序中打开同一个数据库,我永远无法获得独占锁来写入新记录。 Altium 永远不会关闭它的连接,我不知道这是否是问题所在。
当我阅读https://www.sqlite.org/lockingv3.html 时,它似乎表明多个进程需要通信才能获得排他锁(写入所必需的)。这让我相信我的问题是第一个应用程序永远不会释放它的共享锁,所以第二个应用程序永远无法获得独占锁。我的解释正确吗?
【问题讨论】:
-
Altium 可能会保持锁定以防止其他应用程序(如您的应用程序)修改文件。
-
这就是我的怀疑。我想知道是否有办法在 ODBC 驱动程序本身中防止这种情况发生。它与 MS Access 一起正常工作。但这并不能说明什么。
-
Altium 不太可能使用 ODBC 驱动程序。
-
Altium 工作正常。问题是我无法在不关闭 Altium 的情况下在 Altium 之外编辑数据。如果我不需要在 Altium 打开的情况下添加/更新部件,那将不是问题。直到开发人员修改 Altium 以在它不使用数据库时释放它的锁定,这对于 SQLITE 来说似乎是不可能的。
标签: sqlite locking odbc altium-designer