Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Приветствую всех! Вопрос по обработке 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
1-1101371135
Инког
2004-11-25 11:25
2004.12.12
treeview


14-1101135499
han_malign
2004-11-22 17:58
2004.12.12
Программная запись CD/DVD, под Windows 2000/XP - есть библиотеки?


6-1096714960
Felixxxxx
2004-10-02 15:02
2004.12.12
Как в локальной сети организовать связь


1-1101369450
Maverick
2004-11-25 10:57
2004.12.12
как убрать иконку из border a вообще или не отображать?


1-1101635871
denis24
2004-11-28 12:57
2004.12.12
Проверка на существование формы