DetailPage-MSS-KB

Microsoft small business knowledge base

Article ID: 952337 - Last Review: May 15, 2008 - Revision: 1.1

SYMPTOMS

In a C++ Microsoft Jet DAO MFC (CDao) application, insertions and updates may not work on a computer that is running Windows Vista Service Pack 1 (SP1) or Windows Server 2008. Additionally, you may receive the following error message:
The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.
Note If the application does not capture the exception that is returned by CDao on the insertion or the update, the database will not have the updates that you intended to make.

CAUSE

This problem occurs when all the following conditions are true:
  • The application is written in Microsoft Visual C++ and uses the CDao classes to access a Microsoft Jet database data source.
  • The Use Multi-Byte Character Set value is set for the Character Set project option.
  • The data that the application is inserting or updating was retrieved from a fixed-length defined Text column.
  • The source Text column contains data that is the maximum length that the column allows. For example, a Text(10) column contains a value of 1234567890.
  • Successive insertions or updates occur from the original variable that is returned from the CDaoRecordset object.
  • The target table column is one of the following columns:
    • The same column from which the original data was retrieved
    • Another fixed-length column that is defined as a Text column of the same size

RESOLUTION

To resolve this problem, apply the hotfix that is described in Microsoft Knowledge Base article 943509.

For more information, click the following article number to view the article in the Microsoft Knowledge Base:
943509  (http://support.microsoft.com/kb/943509/ ) Description of the Jet 4.0 Database Engine hotfix package for Windows XP Service Pack 2, Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Vista, Windows Vista Service Pack 1, and Windows Server 2008: October 23, 2007

WORKAROUND

If you cannot apply the hotfix that is described in Microsoft Knowledge Base article 943509, use one of the following methods to work around this problem:
  • Update the application. To do this, copy the retrieved data from the original Visual C++ variable to a new variable. Then, insert or update the data from the new variable.
  • Update the database design. To do this, use one of the following methods:
    • Modify the column widths to one character larger than any expected data.
    • Redefine the width as a non-fixed length.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

APPLIES TO
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual Studio 2008 Professional Edition
  • Microsoft Visual Studio 2008 Academic Edition
  • Microsoft Visual Studio 2008 Standard Edition
  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Standard
  • Windows Vista Service Pack 1
Keywords: 
kbtshoot kbpubtypekc kberrmsg kbprb KB952337
Share
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support