Главная страница
    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.033 c
3-1100246020
Jann
2004-11-12 10:53
2004.12.12
даление строчки


3-1100531559
Dionnis
2004-11-15 18:12
2004.12.12
Использование индексов


1-1101389411
Layner
2004-11-25 16:30
2004.12.12
Скролы на TPanel


14-1101310747
Empleado
2004-11-24 18:39
2004.12.12
may be useful


6-1096626563
Дмитрий Ботвин
2004-10-01 14:29
2004.12.12
Объём оперативки на удаленном компе





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский