Я сам не сталкивался с этим, но похоже, что SqlCeException
будет сгенерировано, а свойство NativeError
содержащегося SqlCeError будет иметь код ошибки 25104 (SSCE_M_DATABASETOOBIG).
Вот список из SqlCeError
Родных кодов, связанных с ошибками в механизме БД - один из них, когда файл БД слишком велик, находится примерно на 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
}
}
}
Надеюсь, это поможет!