在我的基于 Qt (4.8.1) 的应用程序中,我需要检索存储在 MySql 数据库中的视图的定义。
我正在使用的代码是
QSqlQuery query;
query.prepare(QString("SHOW CREATE VIEW %1").arg(viewName));
qDebug() << "actually sending this query: " << query.lastQuery();
qDebug() << "exec retuned " << query.exec();
qDebug() << "last error reported as " << query.lastError();
qDebug() << "size = " << query.size();
qDebug() << "numRowsAffected" << query.numRowsAffected();
QString viewCreateString;
if (query.first()) {
viewCreateString = query.value(1).toString();
qDebug() << "got this create view record" << viewCreateString;
}
当我运行上面的代码时,我得到以下结果:
actually sending this query: "SHOW CREATE VIEW AC_STATE_V"
exec retuned true
last error reported as QSqlError(-1, "", "")
size = -1
numRowsAffected -1
注意:
- 如果我使用相同的凭据从连接到同一个数据库的 MySql Workbench SQLTab 中运行相同的(剪切和粘贴)命令,我确实得到了预期的结果(即视图存在并且用户有足够的权限来检索它)
- 以上所有内容也适用于 TABLE