Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Скрыть ошибку


Автор: 987456 6.8.2007, 17:41
При выборе из комбо бокса формируется запрос на выбор из таблицы название которой равно тексту в комбобоксе, изначально название таблиц не известно.

писал 
Код

try 
open;
sql.text:='Select * from ['+dbcombobox1.text+']';
close;
except 
end;

но ошибки все равно вылазят на поверхность :( 

Автор: ALeXandrK 6.8.2007, 23:02
Так правильно что вылазят, это ж ошибка не ведет к завершению программы.
Поэтому try... except здесь бесполезен.
Нужно посмотреть есть ли у компонента, кот. связывается с Б.Д. обработчик ошибок...
обычно есть к-нибудь OnError... 
А можно и другой способ: сравнивать название со всеми возможными вариантами и
выводить или нет сообщение самому.

Автор: Savek 7.8.2007, 08:22
Правильно будет так
Код


Close;
sql.text:='Select * from ['+dbcombobox1.text+']';
try
Open;
except
ShowMessage('Table not found');
Exit; 
end;

чтобы в случае ошибки сработал код между except ... end запускать нужно НЕ из под делфи, либо настроить среду, иначе отладчик все равно покажет исключение в строке Open

Автор: pseud 7.8.2007, 15:59
987456
но ошибки все равно вылазят на поверхность :( 

видимо ты в отладке запускаешь прогу, а если запустить exe-шник из браузера?

да и с open close разберись - сначала закрыть, потом изменить SQL, потом - открыть.

Автор: ALeXandrK 7.8.2007, 17:44
Может выложишь часть проекта, чтобы можно было поковыряться?
А то так сложно что-то дельное подсказать.

Автор: Rodman 7.8.2007, 17:57
а если просто проверять на наличие данных??? если пусто то таблицы НЕТУ

Автор: 987456 8.8.2007, 16:49
такс, все попробую, потом отпишусь.

а с open и close все нормально smile это я тут перепутал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)