Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизПриветствую всех! Вопрос по обработке except при коннекте в БД Найти похожие ветки
← →
Фазер (2004-11-15 08:59) [0]Наваял код, с исключениями в первый раз, если UDL меняю на "левую" БД, прога приконнектится ес-но не может, и в данном случае, гонит без остановки ShowMessage, будто в цикле, прогу приходится снимать по ALT+CTRL+DEL, подскажите плз, что не так в коде, и как в таком случае стандартизированно написать подобный код? Т.е. ShowMessage вынести в другу процедуру, а передавать только E.Message на неё? (Но это 2я часть вопроса..)
procedure Tdm1.DataModuleCreate(Sender: TObject);
begin
try
conn.Connected:=False;
conn.ConnectionString:="FILE NAME="+ExtractFileDir(ParamStr(0))+"\link.udl";
conn.Connected:=True;
except
on E: EADOError do ShowMessage(E.Message);
on E: EOleException do ShowMessage(E.Message);
on E: EDataBaseError do ShowMessage(E.Message);
else ShowMessage("Неизвестная ошибка!");
end;
end;
← →
kostan © (2004-11-15 09:30) [1]не знаю конечно:) но на этапе создания модуля не желательно делать коннект (возможно просто не заводится сам DB).
попробуй вызвать его(коннект) через отдельную процу этого модуля
( по такому же принципу как у тебя )
← →
Фазер (2004-11-15 09:36) [2]В смысле так? Тот же результат, с "циклом с ShowMessage"
procedure Tdm1.DataModuleCreate(Sender: TObject);
begin
connect;
end;
procedure Tdm1.connect;
begin
try
conn.Connected:=False;
conn.ConnectionString:="FILE NAME="+ExtractFileDir(ParamStr(0))+"\link.udl";
conn.Connected:=True;
except
on E: EADOError do ShowMessage(E.Message);
on E: EOleException do ShowMessage(E.Message);
on E: EDataBaseError do ShowMessage(E.Message);
else ShowMessage("Неизвестная ошибка!");
end;
end;
← →
kostan © (2004-11-15 09:52) [3]не так
убрать вообще обработку при создании DModule
procedure Tdm1.DataModuleCreate(Sender: TObject);
begin
// connect;
end;
и вызывать dm1.connect потом (можно из основного модуля)
если не получится то и вобще убрать ShowMessage (так как он требует нажатия :\ да и вобще не красив:)))
← →
Фазер (2004-11-15 10:05) [4]С вызовом разберемся, можно в OnTimer включить, с задержкой в 10мСек, главное, как бы обработать ошибку подключения к БД :(
← →
kostan © (2004-11-15 10:14) [5]у меня было нечто подобное (ошибка connect) но что б в цикле крутилось:((
че так и крутится ? (если запуск вне Create )
← →
Фазер (2004-11-15 10:21) [6]Как сказать в цикле, просто, при запуске приложения с "левой" UDL, вываливается куча ShowMessage, с цента экрана, до трея, и потом там ещё рисуются по 10 штук в секунду или больше, и через 10 сек винда видимо сама прикрывает это приложение (т.е. я только хочу его прибить в таск менеджере, а его уже и нет).
PS. Приложение, для чистоты эксперемента, форма с гридом, и дата модуль. Код его выше приводил. Система 2000, конект к MSSQL2000, с этого же компьютера.
← →
Фазер (2004-11-15 11:01) [7]Во, заработало!
kostan все правильно советовал, у меня при загрузке dm1 стартовала по OnTimer в 1мСек форма с вводом логина и пароля. Логин выполнен в виде DBLookupComboBox... Из этого всего и была проблема с "циклом ShowMessage". Подправил, теперь все Ок!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c