Re: Firebird: как узнать, какое ограничение нарушено?
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 29.06.10 09:43
Оценка:
Здравствуйте, IvanXXX, Вы писали:

IXX>Есть БД, в таблицах которой множество ограничений целостности, каждое из которых имеет заранее известное имя. Как узнать имя ограничения, вызвавшего исключение при выполнении ХП?


IXX>Теперь пишу следующую ХП:

IXX>
IXX>  when any do
IXX>  begin
IXX>    sql = SQLCODE;
IXX>    gds = GDSCODE;
IXX>    VIOLATED_CHECK_NAME = FUNC(sql, gds); --- вот с этим проблема
IXX>    message = FUNC(VIOLATED_CHECK_NAME);
IXX>    suspend;
IXX>end
IXX>


1) Что есть FUNC и почему это оно вызывается с разными аргументами?
2) Зачем пользователю знать, что обломился именно XXX_YYY_CHK_HABA_DABA чек, а не какой-то AAB_CBDF?

На худой конец можешь конечно на стороне клиента поиграть со статус-вектором, вызовом fb_sqlstate() и прочей магией, но не возьму в толк — зачем?
WBR, Dmitry Beloshistov AKA [-=BDS=-]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.