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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 01:10   #1
MeTeOpA
Форумчанин
 
Аватар для MeTeOpA
 
Регистрация: 17.02.2010
Сообщений: 194
По умолчанию Обработка исключительных ситуаций

Код:
try
AdoQuery1.Active:=false;
AdoQuery1.SQL.Text:='select * from setki where '+combobox3.Text+'='+Edit1.Text;
AdoQuery1.Active:=True;
except
MessageBox(0, 'Неизвестная ошибка.Обратитесь к администратору за помощью.', 'Save Warning', +mb_YesNo +mb_ICONINFORMATION);
end;
если ничего не вводить в edit1 ошибку выбрасывает на выделенной строке


как ее обойти подскажите?
MeTeOpA вне форума Ответить с цитированием
Старый 17.06.2010, 02:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
если ничего не вводить в edit1 ошибку выбрасывает на выделенной строке

как ее обойти подскажите?
1) Вы её уже обошли!
Запустите Ваш EXE-шник не из Дельфи и проверьте!
Скорее всего, в Delphi стоит опция - "Останавливаться на ошибках выполнения" (на самом деле, для отладки, это очень полезно!). Хотите снять - тогда в Delphi, главное меню, Tools - "Debugger Options..."
закладка "Language Exceptions" - снимите птичку в чекбоксе [ ] "Stop on Delphi Exceptions". (повторюсь, на самом деле, удобнее отлаживать код с включенной опцией, поэтому, потом рекомендую включить опцию снова.)

2) Это не очень хороший стиль программирования!
В случае пустого Edit1 пользователь получит ошибку "'Неизвестная ошибка.Обратитесь к администратору за помощью"
Вы уверены, что ошибка действительно неизвестная?!!
Имхо, Гораздо лучше проверить Edit1.Text на пустоту и, перед вызовом SQL сообщить о том, что не заполнен Edit1.Text (или ничего не выбрано в ComboBox3!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.06.2010, 09:33   #3
Kemperok
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 25
По умолчанию

Цитата:
Сообщение от MeTeOpA;
AdoQuery1.SQL.Text:='select * from setki where '+combobox3.Text+'='+Edit1.Text;
Ну тут по-моему ошибка в самом запросе:
а именно where '+combobox3.Text+'='+Edit1.Text
после where не указано ни одного поля которое будет проверяться...
Kemperok вне форума Ответить с цитированием
Старый 17.06.2010, 09:47   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Ну почему ты решил что
Цитата:
не указано ни одного поля которое будет проверяться
?
А если поле просто выбирается из списка combobox3.Text.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 17.06.2010, 09:58   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от rdama
А если поле просто выбирается из списка combobox3.Text.
+1
полностью согласен. Автор хочет выбрать имя поля из комбобокса, а величину (искомое значение) задать в Edit1

Правда, абсолютно не учитывается тип поля (т.е. данный вариант будет работать исключительно для числовых полей!)
Например, если поле строковое, то величину нужно брать в апострофы...
Ну, это уже выходит за рамки вопроса и лежит на совести MeTeOpA, как разработчика программы...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка строк Тигран001 Паскаль, Turbo Pascal, PascalABC.NET 2 24.04.2010 11:34
обработка строк (С++) rap1d188 Помощь студентам 0 18.04.2010 16:29
Обработка исключительных ситуаций в delphi Cannibal Помощь студентам 2 04.11.2009 08:27
Обработка исключительных ситуаций Claster Общие вопросы по Java, Java SE, Kotlin 2 14.10.2009 14:24