大家好,我在activx DLL 的一个类模块中中引用adoconnection,但每创建一个新的对象时出现“atomation error coninitialize has not been called "的错误,请教这是什么原因引起的,谢谢!程序如下:
Public ObjConn As ADODB.Connection
Public ObjRecordset As ADODB.Recordset
Public DataConnection As New ADODB.Connection
'连接数据库
Public Function openconnection() As ADODB.Connection
'On Error Resume Next
'Dim ObjConn As ADODB.Connection
On Error GoTo err1
If ObjConn Is Nothing Then
Set ObjConn = New ADODB.Connection '出现错误
ObjConn.ConnectionString = "Provider=SQLOLEDB.1;Password=; _
Persist Security Info=True;User _
ID=;Initial Catalog=SMS;Data _
Source=10.50.0.231"
ObjConn.Open
End If
Set openconnection = ObjConn
Exit Function
err1:
MsgBox "desc:" & err.Description & "help" & err.HelpFile
End Function
'增加记录
Public Function InsertData(SqlSt As String) As Boolean
Dim InsertRS As New ADODB.Recordset
'On Error GoTo err
'Set InsertRS = New ADODB.Recordset
'If DataConnection.state = 0 Then
Set DataConnection = openconnection
'End If
InsertRS.ActiveConnection = DataConnection
'InsertRS.DataSource = SqlSt
InsertRS.Open SqlSt, , , adLockOptimistic
InsertData = True
Set InsertRS = Nothing
Exit Function
'err:
'Set InsertRS = Nothing
'InsertData = False
End Function'查询
Public Function QueryData(SqlSt As String) As ADODB.Recordset
On Error GoTo err
Set QueryData = New ADODB.Recordset
If DataConnection.state = 0 Then
DataConnection = openconnection
End If
QueryData.ActiveConnection = DataConnection
QueryData.Source = SqlSt
QueryData.Open , , adOpenStatic, adLockReadOnly
Exit Function
err:End Function
Public ObjConn As ADODB.Connection
Public ObjRecordset As ADODB.Recordset
Public DataConnection As New ADODB.Connection
'连接数据库
Public Function openconnection() As ADODB.Connection
'On Error Resume Next
'Dim ObjConn As ADODB.Connection
On Error GoTo err1
If ObjConn Is Nothing Then
Set ObjConn = New ADODB.Connection '出现错误
ObjConn.ConnectionString = "Provider=SQLOLEDB.1;Password=; _
Persist Security Info=True;User _
ID=;Initial Catalog=SMS;Data _
Source=10.50.0.231"
ObjConn.Open
End If
Set openconnection = ObjConn
Exit Function
err1:
MsgBox "desc:" & err.Description & "help" & err.HelpFile
End Function
'增加记录
Public Function InsertData(SqlSt As String) As Boolean
Dim InsertRS As New ADODB.Recordset
'On Error GoTo err
'Set InsertRS = New ADODB.Recordset
'If DataConnection.state = 0 Then
Set DataConnection = openconnection
'End If
InsertRS.ActiveConnection = DataConnection
'InsertRS.DataSource = SqlSt
InsertRS.Open SqlSt, , , adLockOptimistic
InsertData = True
Set InsertRS = Nothing
Exit Function
'err:
'Set InsertRS = Nothing
'InsertData = False
End Function'查询
Public Function QueryData(SqlSt As String) As ADODB.Recordset
On Error GoTo err
Set QueryData = New ADODB.Recordset
If DataConnection.state = 0 Then
DataConnection = openconnection
End If
QueryData.ActiveConnection = DataConnection
QueryData.Source = SqlSt
QueryData.Open , , adOpenStatic, adLockReadOnly
Exit Function
err:End Function
Public Sub Connect_Database()
On Error GoTo Sub_Err
Dim CnnStr As String
If Rs.State <> 0 Then
Rs.Close
End If
If Cnn.State <> 0 Then
Cnn.Close
End If
CnnStr = "DSN=JDC_DATA_SOURCE;UID=SA;PWD="
Set Cnn = New ADODB.Connection
Cnn.Open (CnnStr)
Sub_Exit:
Exit Sub
Sub_Err:
MsgBox Err.Description
Resume Sub_Exit
End Sub
你真的没有加入ADO
教你:
点击“工种”-->“引用”
选择“Microsoft ActiveX Data Objects 2.5 Library”或者“Microsoft ActiveX Data Objects 2.6 Library”
谢谢你,
我已经在加入“Microsoft ActiveX Data Objects 2.5 Library”而且在不用
线程调用的情况下,程序可以正常运行。请继续指教!!