![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Потоки + БД [D7, WinXP]
Ozone © (2004-04-08 12:09:00)Я хочу сделать так, чтобы из потоков велась запись в одну таблицу БД.
Поможет ли при этом создание критической секции на процедуру записи? А может быть есть более надежные и быстрые методы?
Ozone (2004-04-08 12:52:00) [1]Мне тут сказали, что ADO компоненты 100% потокобезопасные.
Это правда? Если так, то и КС не надо...
Ozone (2004-04-08 12:37:00) [2]TO Семен Сорокин ©[7]
Ну да, спросил неподумавши... спасибо.
Семен Сорокин (2004-04-08 12:35:00) [3]Ozone © (08.04.04 12:28) [6]
А на сколько это тормозит работу потоков? (для меня это оч важно)
настолько, что все запросы будут выполняться последовательно.
Ozone (2004-04-08 12:28:00) [4]TO Тимохов ©[4]
А на сколько это тормозит работу потоков? (для меня это оч важно)
Семен Сорокин (2004-04-08 12:24:00) [5]Ozone © (08.04.04 12:19) [3]
А если я через ADO работаю?
если к одному ADOConnection то [4], а так тоже можно для каждого потока свой ADOConnection создавать.
Тимохов (2004-04-08 12:23:00) [6]Я работаю напрямую через адо (т.е. через импортированную библиотеку ado).
Из разных потоков обращаюсь к одному connetion через критическую секцию.
Понятно, что при модели ado, равной apartment, это не совсем корректно, но явного упоминания о недопустимости такого метода я не нашел. Все что нашел было - не соответствует духу потоковой модели apartment. Так, что для себя сделал вывод, что с защитой через критическую секцию делать можно.
Ozone (2004-04-08 12:19:00) [7]А если я через ADO работаю?
Ozone (2004-04-08 12:17:00) [8]Угу, попробую покопать.
Семен Сорокин (2004-04-08 12:14:00) [9]Поток должен работать со своей TSession & TDatabase, и закрывать их по окончании работы (создавать эти компоненты надо в Execute, разумеется), а у TSession установить AutoSessionName - для этого и надо.