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

Вниз

Проблемы с потоком   Найти похожие ветки 

 
Talla2k ©   (2004-04-22 17:14) [0]

Некоторый код необходимо выполнить в потоке.
Делаю так:

function potok(Param: Pointer): DWord; stdcall;
var
 conn2:_Connection;
begin

conn2:=CoConnection.Create;
conn2.Provider:="EQL OLE DB Provider";
conn2.Properties["DBMS Name"].Value:="L2Com.HcComSessionCreator";
conn2.open("2;0;38400;","1","0",Integer(adConnectUnspecified));
//...
conn2.Close;

Result:=0;
exitthread(Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Thread := CreateThread(nil,0,@potok,nil,0,ThreadID);
end;

При выполнении потока получаю ошибку EOleSysError(Не был произведен вызов CoInitialize)
на операторе conn2.Provider:="EQL OLE DB Provider".
З.Ы. Если этот код выполнить без потока,то все работает.
К VCL-контролам в потоке не обращаюсь,и ошибка...
Подскажите где я не прав.
(или нельзя к ADO  в потоке обращаться???).
Заранее спасибо.


 
Reindeer Moss Eater ©   (2004-04-22 17:16) [1]

А ты поверь в текст ошибки.


 
GanibalLector ©   (2004-04-22 18:55) [2]

2 Reindeer Moss Eater ©   (22.04.04 17:16) [1]
Если этот код выполнить без потока,то все работает.


 
Polevi ©   (2004-04-22 18:56) [3]

function potok(Param: Pointer): DWord; stdcall;
var
conn2:_Connection;
begin
 CoInitialize(nil);
 try
   ...
   ...
 finally
   CoUninitialize;  
 end;
end;


 
Jack128 ©   (2004-04-22 18:57) [4]

В орешник...


 
Polevi ©   (2004-04-22 18:58) [5]

PS
также совет гасить все исключения возникающие в поточной ф-ии.


 
Reindeer Moss Eater ©   (2004-04-22 19:20) [6]

2 GanibalLector ©  

Верить в текстовые сообщения об ошибках все же НАДО.


 
GanibalLector ©   (2004-04-23 01:24) [7]

Всем пасибки!!!
Разобрался.Млин,сколько подводных камней ...Какие-то  CoInitialize и CoUninitialize.Даже в книгах такого не видел.



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
14-1084631415
GuAV
2004-05-15 18:30
2004.06.06
Exeшник - на дельфе, на С билдере или ещё на чм-то как узнать.


1-1085212226
Diver
2004-05-22 11:50
2004.06.06
Можно ли повернуть "имедж" на определенный угол обычными процедур


3-1084455789
tchn
2004-05-13 17:43
2004.06.06
master_detail+lookup=непонятки


3-1084416711
JetMan
2004-05-13 06:51
2004.06.06
DBGridEh


1-1085154008
Kiloper
2004-05-21 19:40
2004.06.06
Программа для разных разрешений экрана