私の 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
ご了承ください:
- 同じ認証情報を使用して同じDBに接続されたMySql Workbench SQLTab内からまったく同じ(カット&ペースト)コマンドを実行すると、期待される結果が得られます(ieviewが存在し、ユーザーはそれを取得するのに十分な権限を持っています)
- 上記のすべてが TABLE にも有効です