2014-04-09 109 views
1
C++ Qt的SQL查詢長度限制

有SQL查詢長度的限制,當我們使用Qt的代碼如下:甲骨文

QString queryStr = "... long SELECT statement ..."; // with over 8000 chars. 
QSqlQuery query(queryStr 
    , new QSqlDatabase(QSqlDatabase::addDatabase("QOCI", "connectionName")); 
if (!query.isActive()) { 
    return false; // for long querys we end up here. 
} else { 
    return true; 
} 

這是一個8K邊界?

+0

你是什麼意思8K邊界。您需要查看數據庫本身,在這種情況下是Oracle。你能直接做到嗎?如果情況並非如此,那麼它與Qt – UmNyobe

+0

@UmNyobe無關,它取決於Oracle。 我在Oracle SQL Developer中測試了它,它返回異常: 「列表中表達式的最大數量爲1000」。 現在問題是:在構造函數中執行Qt中的查詢是否正確?爲什麼我沒有得到例外? 親切的問候,S – seboeh

回答

0

SQL查詢的限制取決於許多因素,包括數據庫配置,磁盤空間和內存。所以沒有固定的查詢長度限制。

某些其他因素可能會影響限制,例如子查詢的最大級別。對於Oracle的一些限制,您可以看到this

在你的情況下,我不知道你的查詢是什麼。可能是你的問題不是查詢的長度。可能有一些語法問題。你也不要調用QSqlQuery的exec()函數來檢索結果。

+0

還好以下網站: http://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm @Nejat:是的,這是SQL。問題是列表中元素的最大數量。 – seboeh