在Windows Mobile 5上运行的紧凑框架.NET 3.5应用程序中,我们看到记录了以下错误消息:
Could not load database compaction library. Operation has been aborted.
at System.Data.SqlServerCe.SqlCeEngine.ProcessResults(IntPtr pError, Int32 hr)
at System.Data.SqlServerCe.SqlCeEngine.Repair(SEFIXOPTION option, String dstConnStr, RepairOption repairOption)
at System.Data.SqlServerCe.SqlCeEngine.Compact(String connectionString)
in:
SQL Server Compact ADO.NET Data Provider
应用程序发出一个命令来压缩SQL Server Compact数据库文件并接收上面的错误响应。
错误消息间歇性地发生;有时紧凑的操作会完成,有时会记录上面的错误。
Google搜索此错误消息会产生一些结果,这些结果表明缺少内存(或正确类型的内存)是原因,但此错误并非在所有设备平台上一致发生。来自特定制造商的某些Windows Mobile设备从未出现此错误,而来自其他制造商的设备通常会出现此错误。
答案 0 :(得分:1)
看起来这是因为您在数据库上发出某种修复选项而导致的。
您是否尝试围绕相关操作编写try...catch
块?
查看实际导致错误的代码会很有帮助。知道抛出错误的方法有很多帮助。
这实际上是一个评论,但是它太长了,无法放入评论部分。
修改强>
嗨理查德,
我不认为这是你在MSDN上的问题,是吗? >> LINK <<这是从2009年开始的。
我还在dbaspot.com上找到了>> THIS POST <<,它引用了内存不足的设备。你的开发设备上有多少“东西”?
答案 1 :(得分:1)
您必须在设备上安装.repl cab文件,例如:sqlce.repl.ppc.wce5.armv4i.CAB