0
我想調用一個使用Qt的MySQL服務器存儲過程。該過程返回我想要檢索的多行數據。使用綁定調用服務器存儲過程
的第一個片段我試過能正常工作:
QSqlQuery query("CALL GetOrderItems(323)", dataBase);
qDebug() << query.first();
它還返回所需的數據和query.first()
像預期的是真實的。
然後我嘗試使用參數綁定插入參數,如Qt文檔提出的。我嘗試了以下片段。第一個使用索引佔位符第二個關鍵字佔位符。
QSqlQuery query(dataBase);
qDebug() << query.prepare("CALL GetOrderItems(?)");
query.bindValue(0, 323);
qDebug() << query.exec();
qDebug() << query.first();
QSqlQuery query(dataBase);
qDebug() << query.prepare("CALL GetOrderItems(:myparam)");
query.bindValue(":myparam", 323);
qDebug() << query.exec();
qDebug() << query.first();
這兩個查詢都可以正常執行。但query.first()
返回false,所以我不知道如何得到結果。
我可以通過某種方式從綁定查詢中獲得結果嗎?爲什麼這不起作用?
http://qt-project.org/doc/qt-4.8/sql-driver.html#qmysql - 似乎是MySQL驅動程序/ API中的限制。 – Mat 2014-10-19 09:03:49
鏈接文本顯示IN,OUT和INOUT參數。但我不使用OUT或INOUT參數。我想檢索查詢結果記錄。我沒有嘗試使用OUT參數,但是如果鏈接的文本是正確的,那也會失敗。 – Silicomancer 2014-10-19 09:50:09
你正在使用'IN'參數,你不是嗎? – Mat 2014-10-19 09:50:42