Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Надо ли вызывать Coinitialize для обычных глобальных объектов? [D7, MSSQL]


Aleksandr. ©   (2004-08-19 19:37:00) 

Если объект в констраторе создает ADO-соединение, а в дестракторе его уничтожает. Объект потоком не является, работа с ним ведется через глобальную переменную. И если надо, то где - в констракторе или в initialize?


jack128   (2004-08-19 21:14:00) [1]

Хе, а долго думал, в чем суть твоих притензий, пока внимательно не прочитал > "в констрАторе".:-)) Даже не обратил внимания.. ;-) Наверно потому, что сам с орфографией не очень дружу..


KSergey   (2004-08-19 21:08:00) [2]

Offtop on

Я долго силился понять что есть "в констраторе".
После "в дестракторе" дошло ;)

А конструктор/деструктор - не прикольно? ;)

Offtop off


Aleksandr.   (2004-08-19 20:35:00) [3]

Спасибо, понял.


jack128   (2004-08-19 20:19:00) [4]

Еслитвое адо - соединение создается в основном потоке, то Coinitialize вызывать не нужно - она уж вызвана (в секции инициализации не помню какого модуля) Если же в дополнительном потоке, то вызывать Coinitialize CoUninitialize нужно в методе TTHread.Execute

procedure TDBThread.Execute;
begin
 Coinitialize;
 try
   // Тут работа с ADO
 finally
   CoUninitialize;
 end;
end;


> И если надо, то где - в констракторе или в initialize?
странный вопрос.. секции initialize всех модулей выполняются в основном потоке


Наверх

Титульная страница Поиск, карта сайта Написать письмо