2011-08-02 79 views
0

我正在創建一個需要使用SQLite連接到數據庫文件的dll。 不幸的是,由於我的dll被用作Excel AddIn,所以我沒有機會找出我的dll所在的路徑(應用程序引用Excel安裝文件夾,所有Reflection.Assembly的東西都鏈接到Windows \ GAC文件夾或其他東西)。長話短說,我不能把我的SQLite文件放到我的.dll文件夾中,因爲在連接字符串中使用相對路徑時,不會在那裏找到它。 「數據源= myfile.SQLite」,並且我無法弄清楚我的原始dll的完整路徑,或者是由於dll被用作Excel AddIn。SQLite:數據庫連接到資源文件?

我的想法是將SQLite文件添加到我的項目資源中,但我不知道如何使用常規SQLite連接字符串連接到項目資源..這甚至有可能嗎?如果不是,我會如何解決這個問題?

謝謝!

+0

我想你應該提供一些更多信息:sqlite數據庫包含隨插件附帶的數據,還是它是空的?數據的壽命/所有權是什麼,例如你可以在每次使用時創建一個新的(空的或從初始模板)數據庫,還是應該數據壽命更長? –

+0

數據庫僅供插件使用。它被插件填滿(並被查詢)並需要持久化,即內存中的存儲不會成爲選項。 – James

回答

1

有一個數低於理想的解決方案:

1)打開/在由一個慣例,例如確定的位置創建源碼分貝C:\數據。這可能並不理想,但SQLite需要一個實際的數據文件,它不能使用例如直接存儲資源或獨立存儲(還有其他數據庫可以參見#3)。

2)使用獨立存儲,並在啓動時將獨立存儲的數據複製到臨時位置,並在應用程序關閉時(或其他「持續事件」)將文件複製回隔離存儲。

3)使用支持隔離存儲的數據庫,如VistaDB。顯而易見的缺點是許可成本(儘管很小)。

+0

感謝您的回覆!最後,我設法使用Excel Interop獲取工作簿的完整路徑,因此我現在可以使用外部SQLite文件! – James