An application that uses the ADO interface may malfunction, or data loss may occur when the application connects to SQL Server in Windows Vista, in Windows XP, or in Windows Server 2008
Content provided by Microsoft
Windows Vista Service Pack 1
Windows Vista Enterprise 64-bit Edition
Windows Vista Home Basic 64-bit Edition
Windows Vista Home Premium 64-bit Edition
Windows Vista Ultimate 64-bit Edition
Windows Vista Business
Windows Vista Business 64-bit Edition
Windows Vista Enterprise
Windows Vista Home Basic
Windows Vista Home Premium
Windows Vista Ultimate
Windows Server 2008 Datacenter without Hyper-V
Windows Server 2008 Enterprise without Hyper-V
Windows Server 2008 for Itanium-Based Systems
Windows Server 2008 Standard without Hyper-V
Windows Server 2008 Datacenter
Windows Server 2008 Enterprise
Windows Server 2008 Standard
Microsoft Windows XP Service Pack 3
Consider the following scenario:
An application connects to one of the following products:
Microsoft SQL Server 2005
Microsoft SQL Server 2005 Express Edition
Microsoft SQL Server 2000
SQL Server Desktop Engine (also known as MSDE 2000)
The application uses the SET NOCOUNT ON statement for the connection.
The application uses a Microsoft ActiveX Data Objects (ADO) client-side cursor to insert a row into a table that has an identity column.
When the application queries the identity column value of the newly inserted row, the value "0" is returned incorrectly. When this value is returned, an application that uses the ActiveX Data Objects (ADO) interface may malfunction, or data loss may occur. Whether a malfunction or data loss occurs depends on how the application handles this scenario.
Note This problem occurs only if the application uses a client-side cursor. If the application uses a server-side cursor, the application is not affected.
This problem occurs in the Microsoft Data Access Components (MDAC) components of the following Windows operating systems:
Windows Vista Service Pack 1 (SP1)
Windows XP Service Pack 2 (SP2) with hotfix 940569
Windows XP Service Pack 3 (SP3)
Windows Server 2008
To resolve this issue, install the hotfix that is described in the following Microsoft Knowledge Base article:
961451 FIX: You receive an incorrect value when you query the last-inserted identity value after you use a client-side cursor to insert data to a table that contains an identity column in an application that uses ActiveX Data Objects
Note The hotfix that was described in the "Resolution" section in the earlier version of this article is superseded by the hotfix that is described in 961451.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
This problem affects you if you use Retail Management System (RMS) Store Operations or Headquarters in Microsoft Dynamics on the Windows operating systems that are affected and that are supported. We recommend that you apply this hotfix to prevent invalid data or data loss.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
940569 On a computer that has Microsoft Data Access Components 2.8 installed, an application receives an incorrect value for the identity column from a SQL Server 2005 database
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates