2012-04-14 78 views
1

我想知道是否有辦法將網絡流視爲文件。我可能是錯的,但我看到一個文件作爲字節數組列表。當你在windows中打開一個文件並且寫入文件時,你會向該文件(數組列表)插入字節,我相信。通過網絡流訪問sqlite數據庫

我正在創建一個程序,我用SQLite數據庫部署它。我還創建了連接到網絡上該數據庫文件的客戶端版本。

爲了讓用戶連接到數據庫文件,他們需要提供憑據才能訪問該數據庫中的數據。 我想讓他們能夠連接而不必輸入該信息。

的事情,我一直在想:

  • 部署我與SQL Server應用程序來代替。 (使用SQL服務器部署應用程序並不容易,它會靜默地安裝服務器,啓用tcp連接以及所有必要的配置來實現此目的,而且安裝sqlite需要不到20秒的時間,大約需要7分鐘!我使用WCF與服務器交談,所以我可以爲每個計劃使用的所有查詢生成一個函數。因此,如果我想從產品中選擇*,我可以調用SelectAllFromProducts()方法,在WCF服務...(這裏我有點重新發明輪子)。關於這一點的好處是,我的查詢會更快,我相信.Sqlite是無服務器的,所以如果你計劃在產品中找到所有項目產品名稱就像'foo',那麼如果你想一想,計算機將不得不通過網絡訪問數據庫中的所有記錄。如果本地計算機r做到這一點,並將少量結果發送給客戶端。

回答

1

我不認爲在網絡上使用Sqlite是個好主意。我目前使用Sqlite,但作爲本地文件系統數據庫。

在客戶機 - 服務器架構你一些RDBMS而不是SQLite的更好

客戶/服務器應用

如果你要通過 網絡訪問一個公共數據庫許多客戶端程序,你應該考慮使用客戶端/服務器數據庫引擎 而不是SQLite。 SQLite將通過網絡文件系統工作,但由於與大多數網絡文件系統相關的延遲, 的性能不會很高。此外,許多網絡文件系統實現的文件鎖定邏輯包含錯誤(在Unix和Windows上均爲 )。如果文件鎖定不能像它應該那樣工作,它可能是 兩個或多個客戶端程序可能同時修改相同數據庫的相同部分,導致數據庫損壞。 因爲這個問題是由底層文件系統 實現中的錯誤引起的,所以SQLite沒有辦法阻止它。

請檢查此鏈接爲Appropriate use for Sqlite,並跳轉到部分

的情況下另一個RDBMS更好地工作

+0

的SQLite聲稱支持多個連接。從多個線程使用相同連接查詢數據庫時,我遇到了很多問題。當我分配每個線程時它是自己的連接東西時確定。我想使用sqlite的原因是因爲它是部署的。我試着用sql server部署我的應用程序,這不是eassy,需要很長時間才能安裝。 – 2012-04-14 14:52:37

+0

安裝時間?嚴重的是,它是一次性的事情,Sqlite會給你在客戶端服務器架構上帶來很多麻煩。 – Habib 2012-04-14 14:57:22

+0

你是對的每一件事都是爲了什麼。首先,我將不得不做一個沉默安裝的SQL Server Express,然後我將不得不經過這個麻煩:http://stackoverflow.com/questions/9138172/enable-tcp-ip-remote-connections-to-sql- server-express-already-installed-databas。我不認爲這很容易做,但它是可行的...這就是爲什麼我想使用sqlite – 2012-04-14 16:47:22