|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Как подменить текст ошибки: violation of FOREIGN KEY constraint "FK_T_MAIN_INI" on table "T_MAIN" Пробовал писать что-то типа: when sqlcode -530 do begin exception "exc_not_del"; end в тригеры до и после вставки в T_MAIN, но получаю ошибку: invalid token when. Куда же прописывать эту конструкцию, или есть иной способ выдать свое сообщение взамен стандартного. Заранее благодарен. FB 1.0 IBExpert 2.5.0.13 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2002, 01:18 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Привет. А зачем тебе это нужно? Обрабатывай в клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2002, 13:22 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Каким образом? В клиенте на Delphi 7 exception не происходит, сообщение посылает Interbase. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2002, 19:25 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Ну как-нибудь так: procedure TForm1.ApplyButtonClick(Sender: TObject); begin IBDatabase1.Open; IBTransaction1.StartTransaction; Table1.Insert; Table1.FieldByName('QUANTITY').AsInteger := StrToInt(Edit1.Text); try Table1.Post; IBTransaction1.Commit except ShowMessage('ыыыыыыы'); Table1.Cancel; IBTransaction1.Rollback end end; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2002, 13:36 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Про QUANTITY в самую точку - есть поле с таким именем!:) Если следить самому, то смысл во внешних ключах вообще прободает. Да и способ не подходит, в одной строке разные поля имеют внешние ключи и соответственно нужны разные сообщения, к тому же вставка происходит в разных местах программы клиента и вообще какой смысл городить огород может есть способ решить это на серваке раз он следит все равно за внешними ключами? Заранее благодарен спецам за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2002, 16:30 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Поправить текст можно еще так: Try Except on E: Exception do begin if pos('FK_MEASURE',Uppercase(E.Message))<>0 then ShowMessage('Неверное кол-во') else if pos('FK_MAKER',Uppercase(E.Message))<>0 ShowMessage('Неверный производитель') end; end; А вообще надо на уровне заполнения данных не давать заводить "не существующие" внешние ключи А по коду ошибки ты не определишь какой ключ вызвал exception ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2002, 17:14 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Дело в том, что ошибка как раз и идет в момент заполнения данных. Exception в делфи не происходит, сообщение выдает interbase. Как отловить сообщение в interbase хотя бы не различая по какому ключу ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2002, 21:45 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Есть полуизвращенная идея - создать хранимую процедуру на добавление, редактирование, удаление записей в твоей таблице. В ней ошибку обрабатывать через when . ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2002, 08:55 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Вобще-то в IB был жук - системные триггеры вызывались перед остальными. Его исправили, но не помню, где. Как альтернатива для ХП - триггер перед вставкой и изменением, который проверяет наличие ключа в родительской таблице. В последних версиях должно работать правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2002, 12:33 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Тогда внешний ключ вообще теряет смысл, если проверять самому! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2002, 18:52 |
|
Как подменить текст ошибки?
|
|||
---|---|---|---|
#18+
Нет, ключ нужен для ссылочной целостности. Но таких ошибок как key violation быть не должно, это не надо обрабатывать на клиенте, надо делать так, чтобы пользователь не мог ввести неверные данные. Т.е. чтоб сотрудник не мог быть не привязан к фирме, товар к подгруппе и т.д. Надо просто продумать интерфейс. Никаких проблем вроде бы нет... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2002, 19:46 |
|
|
start [/forum/search_topic.php?author=%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%BE%D0%B1%D0%BE%D1%80%D0%BE%D1%82&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 489ms |
total: | 675ms |
0 / 0 |