我有一個多線程Qt應用程序,它有多個線程訪問單個數據庫。我是否需要創建單獨的QSqlDatabase連接來在每個線程中執行SELECT/INSERT/UPDATE?在多個qt線程中使用單個QSqlDatabase連接
從Qt文檔,我無法理解,如果下面的指引是阻礙上述辦法,我建議:
「的連接只能從創建它的線程中使用之間 移動連接不支持線程或創建來自 不同線程的查詢。「
我實際上已經嘗試在我的多個QThreads中使用相同的連接,並且所有工作都很好,但想要了解它是否正確。 https://www.sqlite.org/threadsafe.html
我想使用多個線程相同的連接名稱的原因:
僅供參考,我(使用Qtsql API)據我所知使用的sqlite3從內部的Qt通過 默認支持串行模式是因爲當我嘗試在多個線程上使用不同的連接到同一個數據庫並執行SELECT/INSERT/UPDATE時,我很頻繁地得到了
database locked
問題。但是,在多個線程中使用相同的連接時,此問題已完全消除。請親切指導一下。
問候,
SAURABH甘地
也許創建一個包裝類,有一些插槽插入/更新/刪除,並在它自己的線程 – Zaiborg