2008-09-21 175 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) 

(我不知道这个例子是否真的可以用于生产代码)。