BUG: Invalid Operation After Setting RDC Resultset = Nothing (153017)



The information in this article applies to:

  • Microsoft Visual Basic Enterprise Edition for Windows 4.0

This article was previously published under Q153017

SYMPTOMS

Executing a refresh method against a remote data control after setting the RDC's Resultset property to Nothing can cause one of these errors:
"Invalid operation for forward only cursor"
-or-
"Unknown error or operation"

CAUSE

This error occurs because setting the ResultSet property to Nothing also causes the ResultsetType property to be set to 0. Zero is not a valid setting for the ResultsetType property.

WORKAROUND

To avoid this problem, set the ResultsetType property to the valid value of 1 after setting the Resultset equal to Nothing. For example, the following code will work correctly and not cause any errors:
   Set MSRDC1.Resultset = Nothing
   MSRDC1.ResultsetType = 1
   MSRDC1.Refresh
				

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. Microsoft is researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Steps To Reproduce Problem

  1. Start Visual Basic 4.0. Form1 is created by default.
  2. Add a single Remote Data control to Form1.
  3. Add the following code to the form, making sure to change the OpenConnection parameters to match an existing data source.

    Note You must change UID =<username> and PWD =<strong password> to the correct values before you run this code. Make sure that UID has the appropriate permissions to perform this operation on the database.
       Private Sub Form_Click()
          Dim cn As rdoConnection
            Dim rsTemp As rdoResultset
    
            Set cn = rdoEnvironments(0).OpenConnection("", rdDriverNoPrompt, _
             False, "DSN=MyDSN;database=pubs;uid=<username>;pwd=<strong password>;")
            Set rsTemp = cn.OpenResultset("Select * From Authors;", _
             rdOpenKeyset)
            Set MSRDC1.Resultset = rsTemp
            MSRDC1.Refresh
            Set MSRDC1.Resultset = Nothing
            MSRDC1.Refresh
       End Sub
    						
  4. Press the F5 key, or select Start from the Run menu to run the application. Click once on the form to execute the code and to see the error.

Modification Type:MinorLast Reviewed:7/15/2004
Keywords:kbbug kbDatabase KB153017