Recordset returneret fra Connection.Execute
HejJeg vil gerne kunne opdatere et lokalt (disconnected) recordset returneret fra et kald til en stored procedure i SQL server 2000. Jeg kan kun få et recordset med CursorType=adOpenStatic tilbage, hvilket jeg ikke kan bruge fordi jeg vil rette i recordsettet bagefter - uden at skrive tilbage til SQL serveren. Data i recordsettet skal sendes videre igennem en 3.parts dll senere i programmet. Jeg har prøvet en masse, men er desværre kun kommet frem til følgende som heller ikke virker. Jeg skal bruge en ClientSide cursor. Løsningen opretter et recordset af den type jeg gerne vil have og kopierer indhold fra det returnerede recordset over. Har prøvet recordset.clone men den løsning giver mig også et adOpenStatic recordset.
-Kode start-
adoDBCon.BeginTrans
adoDBCon.Errors.Clear
Set rsTemp = New ADODB.Recordset
Set rsTemp = adoDBCon.Execute(strCommand, rlngOptions)
If rsTemp.State = adStateOpen Then
Set DBExecute = New ADODB.Recordset
Set DBExecute.ActiveConnection = Nothing
DBExecute.CursorLocation = adUseClient
DBExecute.LockType = adLockBatchOptimistic
DBExecute.CursorType = adOpenDynamic
If Not (rsTemp Is Nothing) Then
For Each fldSource In rsTemp.Fields
DBExecute.Fields.Append fldSource.Name, fldSource.Type, fldSource.DefinedSize, fldSource.Attributes
Next
DBExecute.Open , , adOpenDynamic, adLockBatchOptimistic
Do While Not rsTemp.EOF
DBExecute.AddNew
For Each fldSource In rsTemp.Fields
DBExecute.Fields(fldSource.Name) = rsTemp.Fields(fldSource.Name)
Next
rsTemp.MoveNext
Loop
DBExecute.MoveFirst
Else
Set DBExecute = Nothing
End If
End If
adoDBCon.CommitTrans
-Kode slut-
Mvh.
En snart meget desperat...
