Consider the following scenario:
- You have a database that includes an Image column in SQL Server Compact 3.5 Service Pack 2 (SP2).
- You store some content in the Image column.
- An application calls the SqlCeEngine.Compact or SqlCeEngine.Repair method that uses the RepariOption.RecoverAllorFail parameter to compact or repair the content.
- An application opens the content from the destination database file.
In this scenario, the application might not open the content.
If you call the
SqlCeEngine.Verify method to detect corruption in the destination database file, the method does not report any corruption.
This issue occurs because the
SqlCeEngine.Compact or
SqlCeEngine.Repair method changes the data length of the database file.
These methods read every record in the source database file and write the records to the destination database file. These methods use a block size that differs from the original source to store the image data. However, these methods align the data to block boundaries by adding zeros to the end of the data before these methods insert the data into the destination database file. Therefore, the resulting data length incorrectly includes the added zeros, and the length is interpreted as a new size when the data is read from the destination database file.
Note The
SqlCeEngine.Verify method checks for disk corruption and for a valid page checksum. However, the method does not check the actual image data type. Therefore, the method does not report any issue.
Hotfix information
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
To apply this hotfix, you must have SQL Server Compact 3.5 Service Pack 2 (SP2) installed.
Restart requirement
You do not have to restart the computer after you apply the hotfix
Hotfix replacement information
This hotfix does not replace any other hotfixes.
File information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the
Time Zone tab in the
Date and Time item in Control Panel.
For x86-based versions of SQL Server Compact 3.5 SP2
Collapse this tableExpand this table
| File name | File version | File size | Date | Time | Platform |
|---|
| System.data.sqlserverce.dll | 3.5.8083.0 | 296,816 | 03-Sep-2010 | 09:03 | x86 |
| Entitypub.config | Not Applicable | 565 | 03-Sep-2010 | 05:03 | Not Applicable |
| Policy.3.5.system.data.sqlserverce.dll | 3.5.8083.0 | 10,096 | 03-Sep-2010 | 09:03 | x86 |
| Policy.3.5.system.data.sqlserverce.entity.dll | 3.5.8083.0 | 10,096 | 03-Sep-2010 | 09:03 | x86 |
| Publisher.config | Not Applicable | 558 | 03-Sep-2010 | 05:03 | Not Applicable |
| System.data.sqlserverce.dll | 3.5.8083.0 | 296,816 | 03-Sep-2010 | 09:03 | x86 |
| System.data.sqlserverce.entity.dll | 3.5.8083.0 | 231,280 | 03-Sep-2010 | 09:03 | x86 |
| Sqlceca35.dll | 3.5.8083.0 | 342,384 | 03-Sep-2010 | 09:02 | x86 |
| Sqlcecompact35.dll | 3.5.8083.0 | 83,312 | 03-Sep-2010 | 09:02 | x86 |
| Sqlceer35en.dll | 3.5.8083.0 | 147,312 | 03-Sep-2010 | 09:02 | x86 |
| Sqlceme35.dll | 3.5.8083.0 | 63,344 | 03-Sep-2010 | 09:02 | x86 |
| Sqlceoledb35.dll | 3.5.8083.0 | 169,328 | 03-Sep-2010 | 09:02 | x86 |
| Sqlceqp35.dll | 3.5.8083.0 | 640,880 | 03-Sep-2010 | 09:02 | x86 |
| Sqlcese35.dll | 3.5.8083.0 | 361,840 | 03-Sep-2010 | 09:02 | x86 |
| System.data.sqlserverce.dll | 3.5.8083.0 | 296,816 | 03-Sep-2010 | 09:04 | x86 |
| Microsoft.synchronization.data.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.server.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.sqlserverce.dll | 3.5.8083.0 | 92,016 | 03-Sep-2010 | 09:03 | x86 |
| Microsoft.synchronization.data.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.server.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.sqlserverce.dll | 3.5.8083.0 | 92,016 | 03-Sep-2010 | 09:03 | x86 |
For x64-based versions of SQL Server Compact 3.5 SP2
Collapse this tableExpand this table
| File name | File version | File size | Date | Time | Platform |
|---|
| System.data.sqlserverce.dll | 3.5.8083.0 | 296,816 | 03-Sep-2010 | 09:10 | x86 |
| System.data.sqlserverce.dll | 3.5.8083.0 | 296,816 | 03-Sep-2010 | 09:10 | x86 |
| System.data.sqlserverce.entity.dll | 3.5.8083.0 | 231,280 | 03-Sep-2010 | 09:10 | x86 |
| Sqlceca35.dll | 3.5.8083.0 | 573,296 | 03-Sep-2010 | 09:09 | x64 |
| Sqlcecompact35.dll | 3.5.8083.0 | 117,616 | 03-Sep-2010 | 09:09 | x64 |
| Sqlceer35en.dll | 3.5.8083.0 | 147,824 | 03-Sep-2010 | 09:09 | x64 |
| Sqlceme35.dll | 3.5.8083.0 | 89,456 | 03-Sep-2010 | 09:09 | x64 |
| Sqlceoledb35.dll | 3.5.8083.0 | 257,392 | 03-Sep-2010 | 09:09 | x64 |
| Sqlceqp35.dll | 3.5.8083.0 | 1,131,376 | 03-Sep-2010 | 09:09 | x64 |
| Sqlcese35.dll | 3.5.8083.0 | 670,576 | 03-Sep-2010 | 09:09 | x64 |
| Microsoft.synchronization.data.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.server.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.sqlserverce.dll | 3.5.8083.0 | 92,016 | 03-Sep-2010 | 09:10 | x86 |
| Microsoft.synchronization.data.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.server.dll | 1.0.1208.0 | 115,744 | 02-Sep-2010 | 04:30 | x86 |
| Microsoft.synchronization.data.sqlserverce.dll | 3.5.8083.0 | 92,016 | 03-Sep-2010 | 09:10 | x86 |
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
For more information about the
SqlCeEngine.Compact method, visit the following Microsoft Developer Network (MSDN) website:
For more information about the
SqlCeEngine.Repair method, visit the following MSDN website:
For more information about the
SqlCeEngine.Verify method, visit the following MSDN website: