Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.03 c
14-1084762100
тихий вовочка
2004-05-17 06:48
2004.06.06
исчезновение информации с винта


3-1084621672
havez
2004-05-15 15:47
2004.06.06
BDE


3-1084735551
SnowMen
2004-05-16 23:25
2004.06.06
function YearsBetween(const ANow, AThen: TDateTime): Integer;


6-1082269565
Mim1
2004-04-18 10:26
2004.06.06
Как избежать повления окна подключения к сети в win xp?


3-1084526011
Dina
2004-05-14 13:13
2004.06.06
Поле not null --- gbk gdb





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