题
我目前正在为可再发行的应用程序使用MSAccess mdb文件。
前段时间我发现了SQLite,作为我的解决方案的替代品,但是他们提供的二进制文件并不能提供将它们用作VB6中的对象的可能性。 (或者至少我无法弄清楚如何)。
是否有人有链接,或者可以写一些关于从VB6连接到SQLite DB的内容,以及它与使用ADO的区别?
解决方案
以下是代码示例的链接:
其他提示
我一直在使用SQLite的VB6应用程序工作了一段时间,我尝试了几种连接方法。
所以,让我总结并给出,我认为最好的答案。
Ben Hoffstein,gobansaor和David W. Fenton提到的方法都很好,但它们依赖于sqlite的专有接口。
CherryCity提供的OLEDB提供商很好,因为它使用的是标准接口,但它们有一个每个安装版税系统,这使得它非常非常昂贵。他们的网站并没有预先声明该产品具有版税。您只能了解何时实际购买产品以进行开发并希望分发它。
最后, http://中的SQLite ODBC驱动程序中有完全免费的啤酒和语音。 www.ch-werner.de/sqliteodbc/ 。它工作得很好,我还没有遇到任何重大问题。我遇到的唯一一个小问题是它不允许在一次调用中使用多个语句,因此您只需将其分开即可。此外,该驱动程序允许采用无DSN方法,这使得一切变得更加容易。
所以,imo,ODBC驱动程序确实是最好的解决方案。
或者尝试DHSqlite http://www.thecommon.net/2.html Datenhaus ..
" ...开发为快速替代方案 到ADO,封装了超快的SQLite引擎......“
" ...只有两个Dll你可以完全替换整个ADO / JET环境 - 不再依赖halus ......“
..它是免费的(但不是开源)。
关于这个主题/问题的仅供参考......
发布的FreeVB代码链接使用AGS_SQLite.dll,它只支持SQLite 2.x(功能有限)
提供的DHSqlite链接也支持SQLite 3.x,对于使用VB6(经典)进行SQLite开发的人来说是更好的建议......这个SQLite引擎的代码示例位于 http://www.thecommon.net/3.html
希望有所帮助!
COM Wrappers / Visual Basic DLL 部分位于此页面列出了一些可用于VB6的解决方案。
是的,我仍然坚持用VB6开发:(
似乎可以使用VB Declare Sub
或 Declare 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)
(我不知道该示例是否真的准备好生产代码)。
vbRichClient-Framework(目前版本为5),是一套免费的3套Dll: vbRichClient5.dll vb_cairo_sqlite.dll DirectCOM.dll vbRichClient5.dll是用VB6编写的 - 计划在LGPL下进行后续的Open-Sourcing。
它的主要目的是,尽可能多地解析MS-COM依赖关系,并考虑到目标, 以后,当附带的(VB6兼容的)编译器将解除时,更容易实现自托管状态。 如果更容易实现平台可移植性(对于编译器和新的基于类的运行时)是目标, 那么我们需要在转型和规划阶段开始使用这种解耦框架。
因此,lib提供了一个现代的GUI-Framework,它使用基于Vector的,使用cairo-library 引擎盖(这里没有GDI / GDI +或DirectX ......也没有触及MS-CommonControls.dll)。
另一个较大的部分,通常需要并在“典型的VB应用程序”中使用。很容易DB-Access (通常在* .mdb格式的随附Desktop-DB-File上完成)。那么框架也提供了什么, 是一种易于使用(并且几乎与ADO兼容)的MS-JET-Engine替代品。这是什么造成的 随附的卫星二进制文件的另一大部分:vb_cairo_sqlite.dll ... SQLite引擎。