![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Управление TADODataSet из TThread [D6, Win2k]
Goga © (2004-09-21 13:23:00)Уважаемые мастера подскажите, что я делаю не так:
есть
PADODataSet=^TADODataSet;
TClientThreads = class(TThread)
private
FComponent: PADODataSet;
...
constructor TClientThreads.Create(srcQuery: String; AObject: PADODataSet);
begin
FComponent:=AObject;
inherited Create(True);
FreeOnTerminate:=True;
end;
procedure TClientThreads.Execute;
...
if FComponent.Active then
FComponent.Active:=False;
FOutBuf.SaveToFile(FComponent.CommandText);
FComponent.Active:=True;
в последней строке возникает сообщение об ошибке:
"Не был произведен вызов CoInitialize".
Amoeba (2004-09-21 14:41:00) [1]
> Goga (21.09.04 14:22) [2]
> А если не секрет как инициализировать указатель?
TADODataSet уже есть указатель. Прочитай сперва букварь, прежде чем лезть в TThread!
Goga (2004-09-21 14:22:00) [2]А если не секрет как инициализировать указатель?
KSergey (2004-09-21 13:28:00) [3]> "Не был произведен вызов CoInitialize".
Ну так вызовете! Чего стесняться-то?
Хотя, если честно, я бы не советовал так вот вольно обращаться к объекту из другого потока. Тогда уж здесь его и создавать.
Но тогда и коннект у него должен быть свой.
А вообще - посмотрите на асинхронной выполнение команд ADO-объектами: может его будет вам достаточно?