【发布时间】:2011-06-06 15:55:58
【问题描述】:
如果数据库达到 SQL Server Compact Edition 的 4GB 限制会怎样?这有什么特别的例外吗?
我可以安全地捕获此事件或异常,并创建一个新数据库吗?
【问题讨论】:
标签: c# sql-server-ce
如果数据库达到 SQL Server Compact Edition 的 4GB 限制会怎样?这有什么特别的例外吗?
我可以安全地捕获此事件或异常,并创建一个新数据库吗?
【问题讨论】:
标签: c# sql-server-ce
我自己没有经历过这种情况,但看起来SqlCeException 会被抛出,并且包含的SqlCeError 的NativeError 属性将有一个错误代码25104 (SSCE_M_DATABASETOOBIG)。
这里是SqlCeError 中的listing 与数据库引擎错误相关的本机代码——关于数据库文件太大的问题大约是下降了2/3。该清单适用于 SQL CE 3.5;你没有说明你使用的是什么版本,但我猜它不会改变。
我不明白为什么您无法捕获此异常,然后在您的 catch 部分中创建一个新数据库。
try {
//do something
} catch (SqlCeException cexc){
foeach (SqlCeError aError in cexc.Errors) {
if (aError.NativeError == 25104) { //this is the code for the TOO BIG error code
//handle too big error -- maybe create a new database
}
}
}
我希望这会有所帮助!
【讨论】: