12

我目前正在为可再发行应用程序使用 MSAccess mdb 文件。

不久前,我发现了 SQLite,作为我的解决方案的替代方案,但它们提供的二进制文件不提供将它们用作 VB6 中的对象的可能性。(或者至少我无法弄清楚如何)。

有没有人有一个链接,或者可以写一些关于从 VB6 连接到 SQLite DB 的内容,以及它与使用 ADO 的区别?

4

7 回答 7

8

我一直在使用 SQLite 开发一个 VB6 应用程序,并且尝试了几种连接方法。

因此,让我总结并给出我认为的最佳答案。

Ben Hoffstein、gobansaor 和 David W. Fenton 提到的方法很好,但它们依赖于 sqlite 的专有接口。

CherryCity 的 OLEDB 提供商很好,因为它使用标准接口,但他们有一个按安装的版税系统,这使得它非常非常昂贵。他们的网站没有预先声明该产品有版税。您只有在实际购买了用于开发的产品并想要分发它时才知道。

最后,在http://www.ch-werner.de/sqliteodbc/上还有啤酒和语音中完全免费的 SQLite ODBC 驱动程序。它工作得很好,我还没有遇到任何重大问题。我遇到的唯一小问题是它不允许在一次调用中使用多个语句,因此您只需将其分开即可。此外,该驱动程序允许使用 DSN-less 方法,这使一切变得更加容易。

所以,imo,ODBC 驱动程序确实是最好的解决方案。

于 2009-03-30T22:49:05.707 回答
5

或者试试 Datenhaus的 DHSqlite http://www.thecommon.net/2.html ..

“...作为 ADO 的快速替代品开发,封装了超快的 SQLite 引擎...”

“......只需两个 Dll,您就可以完全替代整个 ADO/JET 环境 - 不再有依赖关系......”

..它是免费的(但不是开源的)。

于 2008-09-22T11:56:05.670 回答
4

这是带有代码示例的链接:

http://www.freevbcode.com/ShowCode.asp?ID=6893

于 2008-09-21T16:18:24.797 回答
3

只是关于这个主题/问题的仅供参考......

发布的 FreeVB 代码链接使用仅支持 SQLite 2.x(功能有限)的 AGS_SQLite.dll

提供的 DHSqlite 链接也支持 SQLite 3.x,对于使用 VB6 (Classic) 进行 SQLite 开发的任何人来说都是一个更好的建议……在http://www.thecommon.net/3 上有此 SQLite 引擎的代码示例。 html

希望有帮助!

于 2009-08-23T22:28:35.760 回答
2

vbRichClient-Framework(目前为第 5 版)是免费提供的 3 个 Dll 集: vbRichClient5.dll vb_cairo_sqlite.dll DirectCOM.dll vbRichClient5.dll 是用 VB6 编写的 - 并且计划在 LGPL 下进行以后的开源。

它的主要目的是,尽可能多地与 MS-COM 依赖项分离,并牢记目标,以便稍后在随附的(与 VB6 兼容的)编译器启动时更容易实现自托管状态。如果更容易实现平台可移植性(对于编译器和新的基于类的运行时)是目标,那么我们需要开始使用这种已经处于过渡和规划阶段的解耦框架。

So, the lib offers a modern GUI-Framework which works Vector-based, using the cairo-library under the hood (no GDI/GDI+ or DirectX here ... and also nothing of the MS-CommonControls.dll is touched).

The other larger part, which is often needed and used within "typical VB-Applications" is easy DB-Access (usually done over an accompanying Desktop-DB-File in *.mdb-Format). So what the framework also offers, is an easy to use (and nearly ADO-compatible) replacement for the MS-JET-Engine. This is, what makes up the other larger part of the accompanying satellite-binary: vb_cairo_sqlite.dll ... the SQLite-engine.

http://www.vbrichclient.com/#/en/Downloads.htm

于 2018-11-06T05:08:35.990 回答
0

本页中间的COM Wrappers / Visual Basic DLLs部分列出了一些可用于 VB6 的解决方案。

是的,我仍然坚持使用 VB6 进行开发 :(

于 2014-10-28T20:08:51.963 回答
0

似乎可以sqlite.dll使用 VBDeclare SubDeclare Function语法直接访问 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)

(我不知道该示例是否真的准备好用于生产代码)。

于 2018-01-23T13:39:55.347 回答