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