-
пытаюсь сделать
AdoFox:=TAdoConnection.Create(Application)
в дополнительном потоке.
Не хочет работать.
Это вообще можно делать в доп. потоке?
-
> AdoFox:=TAdoConnection.Create(Application)
Application у тебя тоже в дополнительном потоке?
> Не хочет работать.
больно слышать.
> Это вообще можно делать в доп. потоке?
да.
-
> Не хочет работать.
так и говорит "не хочу!"?
-
>
> > Не хочет работать.
> больно слышать.
> > Не хочет работать.
>
> так и говорит "не хочу!"?
В основном потоке работает, а в дополнительном возникает эксепшен.
А "не хочет работать" - это просто образное выражение.
> Application у тебя тоже в дополнительном потоке?
О... А я ведь просто код, нормально работавший в основном потоке решил перенести в дополнительный, а об этом и не подумал...
Спасибо.
-
Убрал Application, все равно не хочет работать.
Все равно срабатывает исключение:
...
sleep(1000);
try
AdoFox:=TAdoConnection.Create(nil);
except
s.XStatus:='Не хочу работать';
sleep(1000);
end;
...
-
except
on E:Exception
s.XStatus:=E.Message;
-
procedure TMyThread.Execute;
begin
CoInitialize(nil);
try
AdoFox:=TAdoConnection.Create(nil);
{...}
finally
CoUninitialize;
end;
end;
-
Потому что ADO - оно COM.
-
> except
> on E:Exception
> s.XStatus:=E.Message;
Не был произведен вызов Coinitialize
-
Спасибо!!!
-
> [8] Очень злой (01.03.11 14:41)
> Не был произведен вызов Coinitialize
А зачем давил исключение бессмысленным сообщение?
-
> А зачем давил исключение бессмысленным сообщение?
Года 2-3 вообще не занимался Delphi. Позабывал много чего. :(
-
> А "не хочет работать" - это просто образное выражение.
Клиент уходит в несознанку.