2008-09-21 174 views
9

我目前正在使用MSAccess mdb文件進行可再發行的應用程序。在VB6中使用SQLITE

前段時間我發現了SQLite,作爲我的解決方案的替代方案,但它們提供的二進制文件並不提供將它們用作VB6中的對象的可能性。 (或者至少我不知道如何)。

有沒有人有鏈接,或者可以寫一點關於從VB6連接到SQLite DB,以及它與使用ADO的區別?

回答

5

或者從Datenhaus嘗試DHSqlite http://www.thecommon.net/2.html ..

」 ......發展成爲一個快速替代 到ADO,封裝的超快速SQLite引擎...「

」...只有兩個Dll,你會得到一個完整的替換到整個ADO/JET環境 - 沒有依賴關係 - 哈哈了......「

..他的免費(但不是開源)。

7

我一直在使用SQLite處理VB6應用程序一段時間,我嘗試了幾種連接方法。

因此,讓我總結並給出,我認爲是最好的答案。

Ben Hoffstein,gobansaor和David W. Fenton提到的方法很好,但他們依賴專有接口來使用sqlite。

CherryCity公司的OLEDB提供商很好,因爲它使用的是標準接口,但他們有一個安裝使用費系統,這使得它非常昂貴。而且他們的網站並未預先說明該產品有版稅。您只有在您確實購買了用於開發的產品並希望分發時纔會發現。

終於有了啤酒和語音中絕對免費的SQLite ODBC驅動程序http://www.ch-werner.de/sqliteodbc/。它工作得很好,我還沒有遇到任何重大問題。我遇到的唯一小問題是它不會在一次調用中允許多個語句,所以您只需將其分開即可。另外,驅動程序允許使用無DSN的方法,這使得一切都變得更加簡單。

因此,imo的ODBC驅動程序確實是最好的解決方案。

3

只是一個供參考有關此主題/問題...

的FreeVB代碼的鏈接張貼使用AGS_SQLite.dll只支持的SQLite 2.x的(有限功能)

提供的DHSqlite鏈路支持的SQLite 3 .x以及任何人使用VB6(經典)進行SQLite開發的更好的建議...這個SQLite引擎的代碼示例在http://www.thecommon.net/3.html

希望幫助!

0

this page列出了一些解決方案,中間用VB6可使用的COM包裝器/視頻基本的DLL部。

是的,我還是堅持了VB6 :(

0

這似乎是可以使用VB Declare SubDeclare Function語法直接訪問sqlite.dll SQLite的功能。

它做到這一點的一個例子開發如下所示: https://github.com/RobbiNespu/VB6-Sqlite3

主要提取物:

Public Declare Sub sqlite3_open Lib "sqlite.dll" (ByVal FileName As String, ByRef handle As Long) 
Public Declare Sub sqlite3_close Lib "sqlite.dll" (ByVal DB_Handle As Long) 
Public Declare Function sqlite3_last_insert_rowid Lib "sqlite.dll" (ByVal DB_Handle As Long) As Long 
Public Declare Function sqlite3_changes Lib "sqlite.dll" (ByVal DB_Handle As Long) As Long 
Public Declare Function sqlite_get_table Lib "sqlite.dll" (ByVal DB_Handle As Long, ByVal SQLString As String, ByRef ErrStr As String) As Variant() 
Public Declare Function sqlite_libversion Lib "sqlite.dll"() As String 
Public Declare Function number_of_rows_from_last_call Lib "sqlite.dll"() As Long 
... 
query = "SELECT * FROM users" 

row = sqlite_get_table(DBz, query, minfo) 

(我不知道這個例子是否真的可以用於生產代碼)。