我已经使用 c++ 连接到 Qt 中的数据库。
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("/link/to/my.db");
同时我有一个 Python 程序,它连接到同一个数据库并不断更新一个名为“myTable”的表。
从 Qt 我想在每次轮询时读取新更新的行。所以我想
锁表;读取所有行;删除所有行;解锁表。
如何在 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