如何通过Qt锁定数据库中的表



我已经使用c++连接到Qt中的一个数据库。

 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
 db.setDatabaseName("/link/to/my.db");

同时,我有一个Python程序,它连接到同一个数据库,并不断更新一个名为"myTable"的表。

每次轮询时,我都想从Qt中读取最新更新的行。所以我想

锁定桌子;读取所有行;删除所有行;解锁表格。

如何在Qt 中锁定和解锁表

SQLite中没有表的锁定命令。但您可以通过交易锁定数据库:

BEGIN IMMEDIATE TRANSACTION;
...
COMMIT TRANSACTION;

BEGIN EXCLUSIVE TRANSACTION;
...
COMMIT TRANSACTION;

因此,您可以在操作前后执行事务命令:

q.exec("BEGIN IMMEDIATE  TRANSACTION");
...
q.exec("COMMIT");

 db.transaction(); // Begins a transaction
 ...
 db.commit(); //Commits a transaction

相关内容

  • 没有找到相关文章

最新更新