![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Системные таблицы; Delphi6; Interbase
Анонимщик © (2002-12-06 14:46:00)Вот некое сообщение при попытке выполнить запрещенную операцию:
violation of primary or unique key constrainy "integ_68" on table "TABLE2"
Где и что в системных таблицах изменить (если это возможно), что это сообщение приняло другой вид, скажем: "ОПЕРАЦИЯ ЗАПРЕЩЕНА" (можно и не по-английски).
Анонимщик (2002-12-06 16:26:00) [1]Да, но не хотелось бы совсем уж залезать. Я эту статью читал, это не очень подходит. Если уж исключение уже пошло, то проще всего было бы его и использовать, анализировать параметры и изменять собственно текст. Не знаю, возможно ли это в таком виде. Если да, подскажите.
Скорее всего, ограничусь малым.
Oleg"у E. Если есть ссылка на русский файл interbase.msg, буду благодарен.
OlegE (2002-12-06 16:19:00) [2]Используй ХП и Exeption. На ibase.ru есть статья как сосдавать exeption динамически.
FreeLancer (2002-12-06 16:18:00) [3]Пиши триггер и...
http://www.ibase.ru/devinfo/customex.htm
Анонимщик (2002-12-06 16:13:00) [4]Спасибо.
Но я хочу сделать это на сервере, а не в приложении, а вот насчет interbase.msg - спасибо, работает. Но интересно, можно ли каким-то образом дополнительно в данном случае анализировать параметры (в данном случае - имя поля и название таблицы), чтобы выдавать разные сообщения для разных параметров. Никто не подскажет?
OlegE (2002-12-06 15:02:00) [5]Есть файл - interbase.msg.
В нем содержаться строки сообщений. Можно поискать руссифицированный(для IB5 я встречал), или отредактировать самому при помощи спциальных утилит. IBExpert имеет такую возможность.
FreeLancer (2002-12-06 14:53:00) [6]
try
...
{Здесь делается то, что вызывает это исключение}
...
except on E: Exception do
begin
if MessageBox(Application.Handle, PChar(E.Message+#10#13+"Это описание ошибки"), PChar(String(E.ClassName)+"Это название ошибки"),
MB_YESNO+MB_SYSTEMMODAL+MB_DEFBUTTON2) = mrYes then
begin
...
end else
begin
...
end;
if E.ClassType = EAccessViolation then ...
if E.ClassType = EDBEngineError then ...
end;
end;