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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 08:09   #1
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
По умолчанию перехват ошибок

Привет всем)) проблема есть... вот такой код
Код:
 
try
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('Select * from '+sComboBox1.Items.Strings[sComboBox1.ItemIndex]
+' where День недели='+QuotedStr(sListBox1.Items.Strings[sListBox1.ItemIndex])+' order by №');

AdoQuery1.Open;
except
On EOleException do
          begin
            MessageDlg('Ошибка',mtWarning, [mbOK], 0);
            exit;
          end;
end;
дело в том что пользователь может забыть выбрать что-то из combobox, а значит выскочит ошибка, которая введет его в полный ступор... хотелось бы этого избежать. подскажите как правильно сделать обработчик ошибок, а то этот (код выше) выдает ошибку что EOleException is undeclared identifer. ???
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!

Последний раз редактировалось Stilet; 08.12.2010 в 08:52.
Марк Охман вне форума Ответить с цитированием
Старый 08.12.2010, 08:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if sComboBox1.ItemIndex<>-1 then begin with AdoQuery1 do begin
 Close;
 SQL.text:=('Select * from '+sComboBox1.Items.Strings[sComboBox1.ItemIndex]
 +' where День недели='+QuotedStr(sListBox1.Items.Strings[sListBox1.ItemIndex])
 +' order  by №');
 Open;
end; end else begin
    MessageDlg('Ты же ниче не выбрал, чудо...',mtWarning, [mbOK], 0);
            exit;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2010, 09:01   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Сделайте ак чтобы пользователь не мог не выбрать. Например поставить у ComboBox ItemIndex = 0 или 1

Код:
except
On E: EOleException do
          begin
            MessageDlg(E.Message,mtWarning, [mbOK], 0);
            exit;
          end;
end;
SERG1980 вне форума Ответить с цитированием
Старый 08.12.2010, 10:32   #4
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
По умолчанию

Спасибо всем)))) получилось)))
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!
Марк Охман вне форума Ответить с цитированием
Старый 08.12.2010, 10:55   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

А еще элегантнее сделать по умолчанию btnAdd.Enabled:= False;
и повесить обработчик
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
 btnAdd.Enabled:= ComboBox1.ItemIndex >-1;
end;
_SERGEYX_ вне форума Ответить с цитированием
Старый 08.12.2010, 16:03   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
А еще элегантнее сделать по умолчанию btnAdd.Enabled:= False;
и повесить обработчик
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
 btnAdd.Enabled:= ComboBox1.ItemIndex >-1;
end;
все описанное делается почти автоматом если начать пользоваться экшонами
soleil@mmc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перехват ошибок vba, excel alvazor Microsoft Office Excel 8 27.10.2010 11:50
Перехват ошибок компилятора Яр|/||< (^_^) Общие вопросы Delphi 4 27.03.2010 16:07
Перехват ошибок от Windows DRUNE Софт 2 09.04.2009 13:24
Обработка ошибок. Serviceprofi Помощь студентам 7 19.11.2007 15:12