BUG: ADO CE May Cause System to Stop Responding When You Add Many Records (317698)



The information in this article applies to:

  • Microsoft Windows CE Platform SDK for Handheld PC 2000
  • Microsoft Windows CE Platform SDK for Pocket PC
  • Microsoft Windows CE Platform SDK for Pocket PC 2002

This article was previously published under Q317698

SYMPTOMS

When you use ActiveX Data Objects for the Windows CE operating system (ADO CE) versions 3.0 or 3.1 on Handheld PC 2000, Pocket PC, or Microsoft Pocket PC 2002 devices to add records to a database, the program may stop responding.

This problem typically occurs when you have a relatively large number of records in the database, and if you have created an index in the table.

CAUSE

This symptom appears with ADO CE because of a known problem with the CE database, which is the underlying storage mechanism for ADO CE.

RESOLUTION

To work around the problem, use one of the following methods:
  • Do not use a sort index on a string field in the database table.
  • Use Microsoft SQL Server CE Edition.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

The program stops responding because of a known problem in the Windows CE operating system in the CE database. ADO CE uses the CE database application programming interface (API) internally to store information. The program stops responding when you use a sort order on a string field in a database table and when you add a large number of records (for example, between 15,000 and 16,000 records). The number of records at which the program stops responding is apparently arbitrary, therefore, the problem may also occur if you add as few as 10,000 records or as many as 17,000 records.

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

295069 Target Device May Hang When Using a Large Database by Means of RAPI

Companies that create custom devices can use the fix in this article to solve this problem, however, users or independent software vendors (ISVs) who target the devices listed in the "Symptoms" section cannot apply the fix to retail devices.

For users of ADO CE, the problem occurs only when you have created an index on the table for a string type field. The problem does not occur if there are no indexes created, or if the index is on an integer field.

Although you can use ADO CE with the CE database for smaller sets of data, Microsoft recommends that ISVs who program with ADO CE consider using Microsoft SQL Server CE Edition when you work with large tables.

You can experience several advantages by using Microsoft SQL Server CE Edition:
  • The underlying storage does not use the CE database API, therefore this problem does not occur.
  • The product performs faster for larger databases.
  • The product has more database features for data access.
  • The database program can connect either to the local storage, or directly to data on Microsoft SQL Server 2000 by means of a network connection.

REFERENCES

For more information about Microsoft SQL Server CE Edition, and to download SQL Server CE 1.1 Service Pack 1 (SP1), see the following Web site:

Modification Type:MinorLast Reviewed:7/27/2004
Keywords:kbbug kbnofix KB317698