Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Qt中检测锁定的sql表?_Qt_Locking_Innodb - Fatal编程技术网

如何在Qt中检测锁定的sql表?

如何在Qt中检测锁定的sql表?,qt,locking,innodb,Qt,Locking,Innodb,我有一个Qt应用程序,它在数据库查询期间冻结,因为在夜间备份期间,后台运行着一个SQL转储。MySQL数据库是一个innoDB,由于性能问题无法更改为MyISAM db连接的伪代码如下,后跟锁定函数query.exec: 我想在执行插入之前检测一下表是否被锁定。但是_db.isValid和_db.isOpen返回true,无论如何我应该在表本身上检查,而不是db,我认为 感谢您的任何提示。可能的副本 QSqlDatabase _db = QSqlDatabase::addDatabase(QT_

我有一个Qt应用程序,它在数据库查询期间冻结,因为在夜间备份期间,后台运行着一个SQL转储。MySQL数据库是一个innoDB,由于性能问题无法更改为MyISAM

db连接的伪代码如下,后跟锁定函数query.exec:

我想在执行插入之前检测一下表是否被锁定。但是_db.isValid和_db.isOpen返回true,无论如何我应该在表本身上检查,而不是db,我认为

感谢您的任何提示。

可能的副本
QSqlDatabase _db = QSqlDatabase::addDatabase(QT_DB_TYPE, _con);

_db.setConnectOptions("MYSQL_OPT_RECONNECT=1;");
_db.setHostName("127.0.0.1");
_db.setDatabaseName("qtapp_db");
_db.setUserName("qtuser");
_db.setPassword("xxx");
_db.setPort("90000");
bool ok = _db.open();

qDebug() << "DBG: ############# db status: isopen()"<< _db.isOpen() << ", is valid; " << _db.isValid();

QSqlQuery query(_db);
query.prepare("INSERT huge_table {...}");

query.exec()