我写的com组件代码如下'数据库连接接口
Private conn As New ADODB.Connection'数据库连接字符串
Private ConnectionString As String'模块名称常量
Const m_modName = "abc.DB"Public Function CreateConn(ByVal strCon As String) As ADODB.Connection
'*****************************************************
'*函数名称:CreateConn()
'*功能描述:
'* 创建连接adodb.connection连接
'*参数列表:
'* strCon-----数据库连接字符串
'*
'*
'******************************************************
Dim objContext As ObjectContext
Dim str_Con As String
str_Con = strCon
On Error GoTo errHandler
Set conn = GetObjectContext.CreateInstance("ADODB.Connection")
Set objContext = GetObjectContext()
conn.Open str_Con
Set CreateConn = conn
objContext.SetComplete
errHandler:
objContext.SetAbort
End Function
编译以后,注册
然后调用代码如下,在执行tmp.CreateConn的时候提示run-time error '5':无效的过程调用或参数,请问时哪里错误 Dim tmp As abc.DB
set tmp=New abc.DB
tmp.CreateConn "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=server1"
Private conn As New ADODB.Connection'数据库连接字符串
Private ConnectionString As String'模块名称常量
Const m_modName = "abc.DB"Public Function CreateConn(ByVal strCon As String) As ADODB.Connection
'*****************************************************
'*函数名称:CreateConn()
'*功能描述:
'* 创建连接adodb.connection连接
'*参数列表:
'* strCon-----数据库连接字符串
'*
'*
'******************************************************
Dim objContext As ObjectContext
Dim str_Con As String
str_Con = strCon
On Error GoTo errHandler
Set conn = GetObjectContext.CreateInstance("ADODB.Connection")
Set objContext = GetObjectContext()
conn.Open str_Con
Set CreateConn = conn
objContext.SetComplete
errHandler:
objContext.SetAbort
End Function
编译以后,注册
然后调用代码如下,在执行tmp.CreateConn的时候提示run-time error '5':无效的过程调用或参数,请问时哪里错误 Dim tmp As abc.DB
set tmp=New abc.DB
tmp.CreateConn "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=server1"
objConn=tmp.CreateConn("....")
set objConn=tmp.CreateConn("....")
我出现的是实时错误91,with变量未设置改进了一下'数据库连接接口
Private conn As ADODB.Connection'数据库连接字符串
Private ConnectionString As String'模块名称常量
Const m_modName = "abc.DB"Public Function CreateConn(ByVal strCon As String) As ADODB.Connection
Dim str_Con As String
str_Con = strCon
On Error GoTo errHandler
Dim objContext As ObjectContext
Set objContext = GetObjectContext()
Set conn = New ADODB.Connection 'Set conn = GetObjectContext.CreateInstance("ADODB.Connection")
conn.Open str_Con
Set CreateConn = conn
If Not objContext Is Nothing Then
objContext.SetComplete
End If
Exit Function
errHandler:
If Not objContext Is Nothing Then
objContext.SetAbort
End If
End Function
Set objContext = GetObjectContext()能不能介绍一下 ObjectContext和GetObjectContext的使用,
谢谢!!
你需要将dll注册到com+组件服务器中
才能激活com+的代码
如objContext.SetComplete
objContext.SetAbort