Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1101192856
passlight
2004-11-23 09:54
2004.12.12
Сбойная память : способы использования


1-1101875975
V.I.P
2004-12-01 07:39
2004.12.12
Работа


14-1101306416
European
2004-11-24 17:26
2004.12.12
CVS and WinCVS


1-1101638291
AdmeraL.
2004-11-28 13:38
2004.12.12
Form


4-1099030365
WaS
2004-10-29 10:12
2004.12.12
Определить нandle рабочего стола?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский