Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在VB6中使用SQLITE_Database_Sqlite_Vb6_Ado - Fatal编程技术网

Database 在VB6中使用SQLITE

Database 在VB6中使用SQLITE,database,sqlite,vb6,ado,Database,Sqlite,Vb6,Ado,我目前正在为可再发行的应用程序使用MSAccess mdb文件 不久前,我发现了SQLite,作为我的解决方案的替代方案,但它们提供的二进制文件无法在VB6中将它们用作对象。(或者至少我不知道怎么做) 是否有人有链接,或者可以写一些关于从VB6连接到SQLite DB的内容,以及它与使用ADO的区别?下面是一个带有代码示例的链接: 或尝试Datenhaus的DHSqlite “…作为一种快速的替代品开发 对于ADO,封装超快速SQLite引擎 “…仅使用两个DLL,您就可以完全替代整个ADO/J

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

不久前,我发现了SQLite,作为我的解决方案的替代方案,但它们提供的二进制文件无法在VB6中将它们用作对象。(或者至少我不知道怎么做)


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

下面是一个带有代码示例的链接:

或尝试Datenhaus的DHSqlite

“…作为一种快速的替代品开发 对于ADO,封装超快速SQLite引擎

“…仅使用两个DLL,您就可以完全替代整个ADO/JET环境-不再有依赖性混淆…”


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

我使用SQLite开发VB6应用程序已经有一段时间了,我尝试了几种连接方法

因此,让我总结一下,并给出我认为最好的答案

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

CherryCity的OLEDB提供商很好,因为它使用标准接口,但他们有每安装一次的版税系统,这使得它非常非常昂贵。他们的网站也没有预先声明产品有版税。你只知道你什么时候真正购买了产品进行开发,并想分销它

最后是啤酒和语音中的绝对免费的SQLite ODBC驱动程序。它工作得很好,我还没有遇到任何重大问题。我遇到的唯一一个小问题是,它不允许在一个调用中使用多个语句,因此您只需将其分隔开。此外,驱动程序允许使用DSN较少的方法,这使一切变得更加容易


因此,在我看来,ODBC驱动程序确实是最好的解决方案。

仅供参考

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

提供的DHSqlite链接也支持SQLite 3.x,对于任何使用VB6(经典)进行SQLite开发的人来说,这是一个更好的建议。。。下面是这个SQLite引擎的代码示例


希望有帮助

中间的COM Wrappers/visualbasic dll部分列出了一些可用于VB6的解决方案


是的,我仍然在用VB6开发:(

似乎可以使用VB
Declare Sub
Declare Function
语法直接访问
SQLite.dll
中的SQLite函数

此处显示了一个执行此操作的示例:

关键摘录:

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框架(目前为版本5)是一套免费的3个DLL: vbRichClient5.dll vb\u cairo\u sqlite.dll DirectCOM.dll vbRichClient5.dll是用VB6编写的,并且计划在LGPL下进行更晚的开源

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

因此,lib提供了一个基于向量的现代GUI框架,使用 引擎盖(此处没有GDI/GDI+或DirectX…也没有触及MS-CommonControls.dll)

“典型VB应用程序”中经常需要并使用的另一个较大部分是数据库访问 (通常通过附带的*.mdb格式的桌面数据库文件完成)。因此,框架还提供, 是MS JET引擎的一个易于使用(并且几乎与ADO兼容)的替代品 在附带的卫星二进制文件的另一个较大部分:vb_cairo_sqlite.dll…sqlite引擎