Article ID: 159781
Article Last Modified on 11/14/2003
APPLIES TO
- Microsoft SQL Server 4.21a Standard Edition
- Microsoft SQL Server 6.0 Standard Edition
- Microsoft SQL Server 6.5 Standard Edition
This article was previously published under Q159781
BUG #: 14588 (WINDOWS: 6.50)
SYMPTOMS
If 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 is
restarted, 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.
WORKAROUND
To work around this problem, use the Keyset cursor instead.
STATUS
Microsoft 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
Keywords: kbbug kbfix kbprogramming KB159781