Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Бакалым
3 / 1 / 5
Регистрация: 13.12.2013
Сообщений: 68
1

Обработка сообщений СУБД

23.03.2017, 17:56. Просмотров 1022. Ответов 2
Метки нет (Все метки)

Здравствуйте уважаемые форрумчане!
В процессе написания приложения работающего с базой данных иногда приходится выдавать пользователю сообщения. Например в трриггерах, я часто делаю проверки вводимых значений, например вводятся ли данные в разрешенный рабочий период или же нет. В случае если нет, то даю сообщение средствами pl/sql. Однако пользователь видит не только мое сообщение но и код ошибки и место в котором она возникла. пример в приложении.
так вот эти
ORA-06512 at SENACO_WORK.TRG_WORK_PERIOD, line 26
пользователь видеть не должен. Ему надо видеть только: 'Adding data is possible only for the interval current date - 3 days!'
Вопрос как это реализовать?
0
Миниатюры
Обработка сообщений СУБД  
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2017, 17:56
Ответы с готовыми решениями:

Обработка сообщений клавиатуры
как в билдере програмировать нажатия кнопок? ну: if(key= #11)как правельно? і как прописать...

Обработка сообщений динамической формы
Создаю динамическую форму: void __fastcall TForm1::Button4Click(TObject *Sender) { TForm...

Обработка сообщений/событий. Отслеживание в оборудовании
Мне необходимо отслеживать изменения в составе оборудования. Весь день лажу по инету - ищу, читаю -...

Обработка сообщений
У меня есть запущенный цикл в основном потоке приложения, но выполняется он довольно...

Обработка сообщений
Подскажите, как можно обработать сообщения самого Аксесс (конкретно мне нужны изменение размеров и...

2
Бакалым
3 / 1 / 5
Регистрация: 13.12.2013
Сообщений: 68
31.05.2017, 15:22  [ТС] 2
ни у кого нет идей?
0
Бакалым
3 / 1 / 5
Регистрация: 13.12.2013
Сообщений: 68
07.12.2017, 02:11  [ТС] 3
Лучший ответ Сообщение было отмечено Бакалым как решение

Решение

Все оказалось гораздо проще чем я думал. Проблема решается через конструкцию try{...}catch (EDatabaseError&Err){}
Поскольку возникающая исключительная ситуация относится к категории баз данных, то с помощью данной конструкции можно ее перехватить и обработать. Вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if (ADOQuery1->State == dsInsert || ADOQuery1->State == dsEdit) {
              try{
                ADOQuery1->Post();
                int rcn = ADOQuery1->RecNo;
                ADOQuery1->Refresh();
                ADOQuery1->RecNo=rcn;
             }catch (EDatabaseError&Err){
             if (this->ADOQuery1->FieldByName("WDATA")->IsNull){
             MessageDlg("The field 'Date' can not be null!!!", mtError, TMsgDlgButtons() << mbOK, 0);
             } else {
             MessageDlg("Adding data is possible only for the interval current date - 3 days!", mtError, TMsgDlgButtons() << mbOK, 0);
             }  }
      }
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2017, 02:11

Обработка сообщений
Можно-ли в проекте WindowsForms обрабатывать сообщения windows или это только можно делать в Win32?

обработка сообщений
1)как обработать событие WM_MOUSEMOVE на кнопке? 2)для регистрируемого класса окна указывается...

USART и обработка сообщений
контроллер AT90CAN128, 16МГц в прерывании по приёму по 485 интерфейсу, я записываю всё в буфер,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.