2012-09-04 35 views
1

我的應用程序使用SQLite數據庫進行數據存儲。顯然,這個數據庫應該駐留在某個網絡驅動器上,讓我們將其命名爲Z :(Windows XP的「Map網絡驅動器」功能)。LAN上的SQLite

應用程序正在Linux下開發,數據庫本地存儲。這裏是一個模塊的一部分:

import sqlite3 as lite 

con = lite.connect("base.db") 

訪問Z:驅動器上的數據庫的正確方法是什麼?沿線的東西:

import sqlite3 as lite 
import os 

path = 'Z:\' 
con = lite.connect(path+"base.db") 
+3

請注意,將*任何*數據庫格式存儲到共享驅動器上,並期望在被多個進程訪問時性能和可靠性會導致失望。很有可能你的SQLite數據庫最終會損壞,你應該看看一個支持客戶端 - 服務器的數據庫。如果你的應用程序不打算從多進程訪問SQLite數據庫,你可能會好起來的。 –

+0

是的,我知道這個問題。我曾嘗試使用MySql,但出現了其他問題,正如我在此處所述:[link](http://stackoverflow.com/questions/12260623/slow-pdf-render-with-pyqt-from-mysql-query/ 12260840) – ivica

+1

從這個問題我推斷你確實想使用來自多個進程的SQLite數據庫。您**將最終導致數據庫損壞。我確信有一個解決你的MySQL問題的方法,如果不是的話,改用一個*不同的客戶端服務器功能的數據庫,比如PostgreSQL。 –

回答

2

您應該使用os.path.join創建您的路徑,因爲它將使用正確的路徑分隔符。此外,您還可以使用os.name來檢查,如果你在Windows上運行:

filename = 'base.db' 

path = os.path.join('z:/', filename) if os.name == 'nt' else filename 

con = lite.connect(path) 

然而,你可能想使文件位置配置,以使其更容易develog /調試/部署應用程序。