Problemer med adodb connection mellem flere DLL'er
Her kommer lidt af en smøre. Jeg har en aspfil der først kalder én ActiveX DLL (oObject) for at få en ADODB connection. Som så skal bruges i en transaktion i en anden ActiveX DLL (oObject2).Men i oObject2 når :
.ActiveConnection = conDB
får jeg: Error 3001 is: "Arguments of the wrong type, out of acceptable range, or are
in conflict with one another."
Man kan jo så bare bruge
.ActiveConnection = conDB.ConnectionString
men så virker transaktionen jo ikke efterhensigten.
HJÆLP !!!
/rasmus
-------------------------
ASP FIL
Set oObject2 = Server.CreateObject("project5.class2")
Set oObject = Server.CreateObject("project1.class1")
bReturn = oObject2.GetConn(varConnection)
bReturn = oObject.Go(varConnection)
------------------------------
oObject
Public Function Go(ByRef varConnection As Variant) As Variant
Dim sSql As String
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim conDB As ADODB.Connection
Set conDB = varConnection
conDB.BeginTrans
sSql = "set nocount on; insert into table1 (name) values ('john 1');SELECT @@IDENTITY AS NewID "
Set rs1 = New ADODB.Recordset
With rs1
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Source = sSql
.LockType = adLockReadOnly
.ActiveConnection = conDB
.Open
.ActiveConnection = Nothing
End With
sSql = "set nocount on; insert into table1 (name) values ('john nummer 2');SELECT @@IDENTITY AS NewID "
Set rs2 = New ADODB.Recordset
With rs2
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Source = sSql
.LockType = adLockReadOnly
.ActiveConnection = conDB
.Open
.ActiveConnection = Nothing
End With
conDB.RollbackTrans
'conDB.CommitTrans
End Function
-----------------
oObject2
Public Function GetConn(ByRef varConnection As Variant) As Variant
Dim oConn As ADODB.Connection
Set oConn = New ADODB.Connection
Dim sConnString As String
sConnString = "Provider=SQLOLEDB.1;Extended Properties=""server=;uid=sa;pwd=;database=test;trusted_Connection=no"";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ROSW1;Use Encryption for Data=False;Tag with column collation when possible=False"
oConn.Open sConnString
Set varConnection = oConn
End Function
-----------------------------------------
