0

在我的基于 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 

注意:

  1. 如果我使用相同的凭据从连接到同一个数据库的 MySql Workbench SQLTab 中运行相同的(剪切和粘贴)命令,我确实得到了预期的结果(即视图存在并且用户有足够的权限来检索它)
  2. 以上所有内容也适用于 TABLE
4

0 回答 0