C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
два потока и база
Tertium
Отправлено: 30.05.2005, 18:00


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



есть MSSQL через TADOConnection и TADOQuery.
один поток постоянно пишет-читает, другой — созраняет скажем настройки. для этого он должен базу TADOConnection->Connected = false, а затем снова true с новыми паролем именем.
Вопрос: нужна ли критическая секция (CriticalSection) чтобы это сделать? Ведь все говорят про типа атомарные транзакции и тд Вроде должно и так пахать, а?


Отредактировано Tertium — 30/05/2005, 18:02
olegenty
Отправлено: 31.05.2005, 06:54


Ветеран

Группа: Модератор
Сообщений: 2412



я п сделал. толко не CriticalSection, a TMultiReadExclusiveWriteSynchronizer, я даже шаблон на его основе выкладывал в ветке о профссиональной разработке — можешь глянуть для примера.
olegenty
Отправлено: 31.05.2005, 06:56


Ветеран

Группа: Модератор
Сообщений: 2412



а вообще, я для настроечного потока просто использовал бы отдельное соединение.
Tertium
Отправлено: 31.05.2005, 14:52


Машинист паровоза

Группа: Почетный участник
Сообщений: 192



Отдельный коннект? Идея. Спасибо.
Кстати а как безнапряжно чекать, что сервер БД alive? В отдельном потоке всё время пытаться Connect — Disconnect? Просто если коннекция находится на форме, то не будет ли она в главном потоке? А то когда сервер БД вырубаешь у коннекций как ни в чём не бывало Connected==true smile.gif

И чем тебе не нравятся крит.секции — они ж на основе евентов, а евенты — это ядро...
olegenty
Отправлено: 01.06.2005, 07:07


Ветеран

Группа: Модератор
Сообщений: 2412



критические секции мне нравятся. там, где они нужны.

Вернуться в Работа с базами данных в C++Builder