Howdy Sascha,
According to the component checker, I'm using MDAC 2.7 SP1 which I believe
is the latest. If I use adOpenDynamic I get an error that the recordset does
not support Bookmarks, so I use adOpenStatic. Strangely enough, though
you've suggested I use adUseServer, I found that I don't get the error if I
use adClient on the connection.  In the end it looks like I might have to
use various connections based on what I want to do. On the recordsets that
don't use bookmarks, adUseServer on the Connection and adOpenDynamic on the
recordset seems to work best, whereas on the ones that use recordsets,
adUseClient on the Connection and adOpenStatic on the recordset seems to be
working for now. Wouldn't it be nice if all of the above combinations
worked?
Here's a quick VB project sample that creates the problem on my system:

'This is an example of a project that creates an error. I've distilled out
the actions that seem to lead up to
'the error, and is obviously not the actual code. The use of Bookmarks stems
from using Infragistics Datagrid. I use this
'control extensively in my apps and their controls rely heavily on the use
of bookmarks, so I'm left with limited options in
'what I can do.

Dim varBM(50) As Variant 'array will hold the bookmarks
Private Sub cmdRun_Click()
    Dim strSQL As String
    Dim i As Long
    Dim j As Long
    Dim rsS As New ADODB.Recordset
    Dim cnS As New ADODB.Connection

    cnS.CursorLocation = adUseServer
    cnS.Open "DSN=SAPDBTst1;Password=jono;User ID=OCPC;" 'I open the
connection to the DB here
    strSQL = "select * from tblProjAO where ProjID =  8329 order by ProjAO "
'tblProjAO has 6 fields, 4 integer, 2 boolean. ProjAO is the primary key,
integer default serial
    rsS.Open strSQL, cnS, adOpenStatic, adLockOptimistic 'opens the
recordset. In this case there's 9 records
    i = 1
    Do While Not rsS.EOF 'loops through the recordset
        varBM(i) = rsS.Bookmark 'I gather up the bookmarks
        i = i + 1
        rsS.MoveNext
    Loop
    rsS.Bookmark = varBM(2) 'successfully moves to the 2nd record in the set
    rsS.MovePrevious 'successfully moves back one record.
    rsS.MovePrevious 'hits BOF. BOF = true
    rsS.Bookmark = varBM(1) 'successfully moves to the 1st record. BOF & EOF
false
    rsS.MoveNext '<--- ERROR -2147217887 Multiple-step OLE DB operation
generated errors. Check each OLE DB status value, if available. No work was
done.

    'I never get to this part
    MsgBox "Done"
    rsS.Close
    Set rsS = Nothing
    cnS.Close
    Set cnS = Nothing

End Sub




"Sascha Trowitzsch" <[EMAIL PROTECTED]> wrote in message
b1aqgr$2uh$[EMAIL PROTECTED]">news:b1aqgr$2uh$[EMAIL PROTECTED]...
> Hi Jon,
>
> which version of MDAC do you use?
> What cursor type do you use on opening the recordset?
> I've encountered problems when using adOpenKeyset. The only working thing
> seems to be adOpenDynamic.
>
> Cioa, Sascha



_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to