ACTIVEX DLL是一个包含可执行代码的组件,应用程序通过创建组件对象从而调用组件的属性和方法。
在使用VC开发应用软件的时候,经常需要进行数据库操作,可是VC操作数据库实在比较麻烦,而VB编制数据库软件却十分方便快捷,有什么办法可以让VC编制数据库软件也这么轻松呢?
在工作中,本人需要从串口接收数据并保存到数据库中,如果直接由VC调用ADO组件进行数据库访问、操作,比较麻烦,因此我想利用VB使用ADO组件的方便以及微软的COM接口由VC调用VB完成任务,经过资料查找,发现大部分都是关于如何使用VC制作控件或者DLL后从VB进行调用的,很少关于VB制作ACTIVEX DLL由VC进行调用的文章,在此本人将结合实例说明如何用VB制作一个操作数据库的ACTIVEX DLL,再在VC调用该DLL,从而使得VC方便的使用ADO技术操作数据库。
1、首先使用VB6.0创建一个心得ACTIVEX DLL工程,将工程命名为prjado、将类命名为clsado。
2、为工程添加ADO对象库的引用。工程->引用:Microsoft ActiveX Data Objects2.0 Library
3、为类增加两个新的变量:
Dim con As New ADODB.Connection ‘定义ADO会话连接对象
Dim cmd As New ADODB.Command ‘定义ADO命令对象
4、增加初始化函数
Public Function ado_Init()
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=True;Data Source=sms.mdb”
cmd.ActiveConnection = con
End Function
建立到数据源的物理连接
指定Command对象当前所属的 Connection 对象。
5、数据库操作函数
Public Function ado_add(ByVal strdata As String)
cmd.CommandText = "insert into comdata (timm,datt) values ('" + (Format(Date, "YYYY-MM-DD ")) + Str((Time)) + "','" + (strdata) + "')"
cmd.Execute
End Function
将参数保存到SMS.MDB的COMDATA表中
注意:函数声明时必须指定参数是传值(ByVal),否则VB默认为按地址传递(ByRef)
6、连接关闭函数
Public Function ado_UnInit()
con.Close
Set cmd = Nothing
Set con = Nothing
End Function
关闭连接并且释放对象。
保存工程,编译prjado.dll,这就是我们的服务组件,它完成了调用ADO对象实现对数据库操作的功能。