2017-09-27 69 views
0

您可以詢問連接/執行之外的線程上的QSqlQuery(例如query.value)嗎?在另一個線程上詢問QSqlQuery

+0

你試過了嗎?嘗試一下並告訴我們您的體驗。 – eyllanesc

+0

我還沒有嘗試過,但我想。代碼是多線程的,它可能需要一些時間,直到它隨機崩潰,我更加好奇,如果QSqlQuery體系結構支持它 –

回答

0

按照Qt docs,這是不支持

的連接只能從創建它的線程中使用。 不支持在線程之間移動連接或從 不同線程創建查詢。

此外,由QSqlDrivers使用的第三方庫可以在多線程程序中使用SQL模塊時會產生進一步的限制 。至少,請諮詢您的數據庫客戶端的手冊,瞭解更多信息

,您必須add a new database connection(一個獨特的名字),爲您想運行一個查詢每個線程。

+0

我指的是在執行後使用QSqlQuery。它緩存整個結果嗎?如果我只是通過記錄並閱讀所有值,它是否使用連接? –

+0

@PascalauRazvan。那麼你問是否可以在線程之間傳遞一個活動的'QSqlQuery'對象?你想通過這樣做解決什麼問題?你是否希望以某種方式避免將所有結果發送回主線程? – ekhumoro

+0

@ ekhumoro我不想在創建數據庫連接的同一線程上解析結果(我已將序列化的訪問發生在一個線程上,而不是具有多個連接)。是的,我想知道是否可以在調用者線程上使用該活動的QSqlQuery。 –