Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2010, 19:30   #1
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
Радость Обработка ошибки

добавляю данные в таблицу:
Код:
Form1->ADOTable1->Insert();
Form5->ADOTable1->Insert();
Form1->ADOTable1->FieldByName("...")->AsString=Edit1->Text;
Form5->ADOTable1->FieldByName("...")->AsString=Edit3->Text;
Form1->ADOTable1->Post();
Form5->ADOTable1->Post();
при вводе повторяющихся значений ругается...
Ошибка: Изменения не были успешно внесены, из-за повторяющихся значений в индексе, ключевых полях или связях. Измените данные в поле или полях, содержащих повторяющие значения, удалите индекс или переопределите его, чтобы разрешить повторяющиеся значения.

Можно ли обработать эту ошибку, чтоб за место нее выводило showmessage.
iggor вне форума Ответить с цитированием
Старый 13.06.2010, 20:02   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

блок try ... catch ...
ЗЫ. Странный код какой-то...
pu4koff вне форума Ответить с цитированием
Старый 13.06.2010, 20:12   #3
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

это кусок кода...
как именно обработку делать ??
Код:
try
{
Form1->ADOTable1->Insert();
Form5->ADOTable1->Insert();
Form1->ADOTable1->FieldByName("...")->AsString=Edit1->Text;
Form5->ADOTable1->FieldByName("...")->AsString=Edit3->Text;
Form1->ADOTable1->Post();
Form5->ADOTable1->Post();
}
catch ( ... )
{ShowMessage("Hi");}
iggor вне форума Ответить с цитированием
Старый 13.06.2010, 20:18   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от iggor Посмотреть сообщение
это кусок кода...
как именно обработку делать ??
Код:
try
{
Form1->ADOTable1->Insert();
Form5->ADOTable1->Insert();
Form1->ADOTable1->FieldByName("...")->AsString=Edit1->Text;
Form5->ADOTable1->FieldByName("...")->AsString=Edit3->Text;
Form1->ADOTable1->Post();
Form5->ADOTable1->Post();
}
catch ( ... )
{ShowMessage("Hi");}
Так и делать. Можно в catch прописать интересующий тип исключений.
А теперь я попытаюсь включить ясновидящего: Разработка идёт на Builder C++, запускается программа так же из среды и отлов исключения не происходит, т.е. Hi не вываливается на экран, а всё так же лезет непонятное длинное сообщение на англицком? Чтобы try ... catch работал "как надо", нужно запустить скомпилированную программу через проводник, а не из среды или в настройках убрать перехват исключений, т.к. по умолчанию билдер ловит все исключения вне зависимости от наличия try ... catch.
ЗЫ. Зачем дублировать Insert и Post?
pu4koff вне форума Ответить с цитированием
Старый 13.06.2010, 20:29   #5
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

две разные таблицы, поэтому Insert и Post для каждой таблице свой.
а где в настройках убрать перехват исключений ??
iggor вне форума Ответить с цитированием
Старый 13.06.2010, 20:42   #6
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

pu4koff, спасибо, все работает =)
iggor вне форума Ответить с цитированием
Старый 13.06.2010, 20:49   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от iggor Посмотреть сообщение
две разные таблицы, поэтому Insert и Post для каждой таблице свой.
а где в настройках убрать перехват исключений ??
Извиняюсь, не заметил, что там разные формы используются. Где в настройках эта штука отключается я не помню.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка ошибки, scanf(), Си. krwlr Помощь студентам 3 05.04.2010 16:58
Статическое DLL. Обработка ошибки не нахождения. SNUPY Общие вопросы Delphi 4 07.12.2009 18:13
Обработка ошибки 10061. ClientSocket eks-s Работа с сетью в Delphi 2 05.03.2008 08:06