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

0 に答える 0