OleDb Integrity Constraints Check Error
От: Fortnum  
Дата: 20.09.06 12:41
Оценка:
Господа, а как через OleDb в .NET получить ошибку о том, что нарушены правила ссылочной целостности, когда пытаешься удалить, вставить или изменить запись в таблице? Метод OleDbCommand.ExecuteNonQuery для запроса "DELETE FROM MyTable WHERE Id = 137" возвращает 0, но то ли потому, что такой записи с Id = 137 не существует, то ли потому, что нельзя ее удалить, т.к. на нее ссылаются в других таблицах. Как правильно различить эти две ситуации? Он бы хоть эксепшн с номером ошибки поднимал, а как еще?
Re: OleDb Integrity Constraints Check Error
От: Andrew Merkulov Россия www.ibprovider.com
Дата: 20.09.06 13:17
Оценка: 2 (1)
Здравствуйте, Fortnum, Вы писали:

F>Господа, а как через OleDb в .NET получить ошибку о том, что нарушены правила ссылочной целостности, когда пытаешься удалить, вставить или изменить запись в таблице? Метод OleDbCommand.ExecuteNonQuery для запроса "DELETE FROM MyTable WHERE Id = 137" возвращает 0, но то ли потому, что такой записи с Id = 137 не существует, то ли потому, что нельзя ее удалить, т.к. на нее ссылаются в других таблицах. Как правильно различить эти две ситуации? Он бы хоть эксепшн с номером ошибки поднимал, а как еще?


Вообще-то это зависит от базы данных и ExecuteNonQuery тут не причем. К примеру в Firebird в вашем случае будет сгенерировано исключение.

Попробуйте подписаться на сообщение OleDbConneciton.InfoMessage . Возможно ваш OLE DB провайдер не интерпретирует сообщения от сервера БД как ошибки, а присваивает им более низкий уровень чем требует ADO .Net


Немного обо мне, и моем круге
Мои профиль в LiveLib — книги
Re[2]: OleDb Integrity Constraints Check Error
От: Fortnum  
Дата: 20.09.06 15:04
Оценка:
Здравствуйте, Andrew Merkulov, Вы писали:

AM>Вообще-то это зависит от базы данных и ExecuteNonQuery тут не причем. К примеру в Firebird в вашем случае будет сгенерировано исключение.

AM>Попробуйте подписаться на сообщение OleDbConneciton.InfoMessage . Возможно ваш OLE DB провайдер не интерпретирует сообщения от сервера БД как ошибки, а присваивает им более низкий уровень чем требует ADO .Net

Ясно. Речь идет о базах данных Microsoft Access. Не подскажите какую-нибудь ссылочку, если конечно же такие есть, как с ними надо работать, чтобы отлавливать нарушения ссылочной целостности?
Re: OleDb Integrity Constraints Check Error
От: Fortnum  
Дата: 20.09.06 22:37
Оценка:
Вот как меня глюкануло ! Все нормально, exception все же выбрасывается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.