Здравствуйте, 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() и прочей магией, но не возьму в толк — зачем?