-
Есть проблема: работаю с удаленной базой данных, связь не стабильна, пробую проверить наличие соединения при помощи конструкции типа:
try
ADOConnection.Connected := True;
except
on E : Exception do
ShowMessage(E.ClassName+' '+E.Message);
но except не срабатывает, выскакивает сисемная ошибка. Подскажите почему. Или кто-нибудь знает другой способ проверки связи?
-
срабатывает.
запустите один exe - увидите
-
если бы срабатывало, я не стал бы задавать вопрос
-
Tools-DebuggerOptions-LanguageException
StopOnDelphiException
снять.
except не срабатывает?
-
для чистоты - новый проект начните
procedure TForm1.Button1Click(Sender: TObject);
begin
try
ADOConnection1.ConnectionString := 'йцукенгшщз';
ADOConnection1.Connected := True;
except
on E : Exception do
begin
ShowMessage(E.ClassName+' '+E.Message);
raise;
end;
end;
end;
-
> если бы срабатывало, я не стал бы задавать вопрос
скорее всего ошибка в другом месте
-
Есть версия, что CoInitialize не вызвал.
-
Похоже, что проблема возникла именно из-за ADOConnection. Системное сообщение об ошибке возникает еще до того, как Delphi перехватить исключение. Как это обойти, не знаю.
-
ADOConnection - создан динамически?
-
НИКАК НЕТ
-
Все просто.
Лежит оно на датамодуле, который создается во вторичном потоке.
CoInitialize не вызван + ШоуМессадж не из главного среда.
-
> Медвежонок Пятачок © (09.09.11 13:01) [10]
вероятнее всего.
"Но надо же понять что это за слово (с) День выборов"
> ZAlex
а так?
unit UnitXX
...
begin
CoInitializeEx(nil, 0);
end.
-
> Не могу перехватить исключение
больно слышать.
> а так?
чревато, ибо поток (раз допредполагались до них) все одно не тот. (или уже можно определять модуль в отдельный поток, оставляя написание как есть?)
-
>OW
Tools-DebuggerOptions-LanguageException
StopOnDelphiException
снять.
except не срабатывает!!
-
CoInitializeEx не срабатывает, ибо, похоже, обращение к ADOConnection открывает по любому свой поток (?). Неужели никто с подобной ситуацией не сталкивался?
-
CoInitializeEx не срабатывает
Это функция
-
Кроме того, не надо делать шоумессадж в обработчике исключения.
-
> CoInitializeEx не срабатывает, ибо, похоже
на что похоже это только из сообщения ошибки видно, а все что тут было в ветке все ТОЛЬКО предположения, т.к. реальной, достоверной инфы от тебя нет. даже то есть поток/нет потока ты не подтвердил, и зачем тогда CoInitialize ??? притом что его работа/не работа зависит от месторасположения. где у тебя тоже не понятно. можно также предположить с ним ты "ловишь рыбу там где ее нет, на катке например © анекдот"
-
> ADOConnection открывает по любому свой поток (?).
не по любому, а при только при асинхронном подключении.
> Неужели никто с подобной ситуацией не сталкивался?
с какой? у тебя твоя не описана. нам не известна.
то что ты считаешь, что все объяснил, информации не добавляет.
-
> ZAlex , если хочешь помощи - хватит партизанить и выкладывай, что и как ты делаешь.
Создаешь ли ты сам потоки, может у тебя консольная прога, или сервис - ты же не сообщил о программе ничего существенного.