PRB: ADO Error -2147217896 when Calling MoveFirst()ID: Q174225
|
Performing a parameterized query such as "Select EmployeeID,
FirstName, LastName from Employees where FirstName = ?" and calling the
MoveFirst() method of the recordset, may cause the following error:
This error occurs when using the ODBC Provider for OLE DB.HRESULT = -2147217896 (0x80040E18) The rowset was built over a live data feed and cannot be restarted
The error can be misleading, but the recordset most likely has a
forward-only cursor.
The default cursor type for a recordset returned from a Command Execute()
or from the Open()method of a recordset is forward only.
Since it is a forward-only cursor, in order to move backwards (as required
by a MoveFirst command), ADO re-executes the query and then moves to the
requested record.
When you set up Parameters in the Parameters collection of the Command
object and then call Execute, ADO no longer considers the parameters valid
after the Execute. Without valid parameters, the command cannot be re-
executed to perform the MoveFirst and the error occurs.
Three possible solutions follow:
'STRSQL = "Select EmployeeID, FirstName,
LastName from Employees where Firstname = '" + fname + "'"'
This behavior is by design.
Additional query words: 0x80040E18 kbdse kbsweepnext
Keywords : kberrmsg kbADO kbADO100 kbADO150 kbADO200 kbDatabase
Version : WINDOWS:1.0,1.5,2.0
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: March 3, 1999