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
И чем тебе не нравятся крит.секции — они ж на основе евентов, а евенты — это ядро...
|
|
olegenty |
Отправлено: 01.06.2005, 07:07 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
критические секции мне нравятся. там, где они нужны.
|
|