2013-06-02 21 views
4

如果我想跨多個線程在SQLite數據庫中使用Haskell的HDBC進行查詢(讀取),我可以使用單個連接還是每個線程都有自己的連接?謝謝。使用Haskell的HDBC,我可以在多個線程中使用單個SQLite連接嗎?

+0

我建議使用克隆,如http://hackage.haskell.org/packages/archive/HDBC/2.3.1.2/doc/html/Database-HDBC.html中所述,以確保驅動程序不會搞亂。 –

+0

這真的很有用Jakob,非常感謝。 – Chris

回答

1

我尋遍華夏鄧白氏中國-sqlite的代碼,發現這個comment

邏輯處理變化的計數:看總的變化 前,後查詢。如果它們不同,則查看本地更改。 (局部變化顯示計數器,除非不真正 更新運行查詢,使一個變化,根據文檔。)

這是OK線程明智的,因爲SQLite不使用給定的 胸徑支持無論如何,不​​止一個線程。

官方SQLite的文檔有關於這個topic

FAQ說一整頁:

(5)可以在多個應用程序或同一 應用程序訪問多個實例單個數據庫文件與此同時?

多個進程可以同時打開同一個數據庫。 多個進程可以同時做一個SELECT。但是,只有 一個進程可以在 的任何時刻對數據庫進行更改。

此信息將排除您的兩種方法。也許你可以寫一些測試來證明這些信息是錯誤的。

+1

感謝這個SvenK。 – Chris

+0

那你能接受答案嗎? – SvenK

相關問題