FIX: Sp_cursorfetch May Cause Errors 614 and 605Last reviewed: April 9, 1997Article ID: Q159781 |
The information in this article applies to:
SYMPTOMSIf DYNAMIC CURSOR was opened through sp_cursoropen, and sp_cursor was used to delete all rows from the table, subsequent calls to sp_cursorfetch with any fetch type will fail, generating error 614. After the error occurs, 'drop table' fails, and you will receive Msg 3702 until the server isrestarted, even if the cursor has been closed. This problem may also cause transient error 605 on the table if CURSOR is used repeatedly under this condition. DBCC CHECKTABLE shows no corruption in the table. Regular Transact SQL statements, such as SELECT, UPDATE, or DELETE still work fine on the same table. The text of the error messages follows:
Error : 614, Severity: 21, State: 3 A row on page %ld was accessed that has an illegal length of 0 in database '%s'. Getpage: bstat=0x1008/0, sstat=0x82000091, disk pageno is/should be: objid is/should be: 0x342(834) 0x8(8) 0x342(834) 0x7053b3f3(1884533747) ... extent objid 0x7053b3f3, mask 0x3/0, next/prev=0x340/0x340 ... retry bufget after purging bp 0xf26d40 Error : 605, Severity: 21, State: 1 Attempt to fetch logical page %ld in database '%ld' belongs to object 'syslogs', not to object '%s'. Msg 3702, Level 16, State 1 Cannot drop the table '%s' because it is currently in use. WORKAROUNDTo work around this problem, use the Keyset cursor instead.
STATUSMicrosoft has confirmed this to be a problem in Microsoft SQL Server versions 4.2x, 6.0, and 6.5. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.
|
Additional query words: RPC RELATIVE
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |