Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

Подскажите насчет транзакций???   Найти похожие ветки 

 
Sirus   (2004-09-14 11:40) [0]

Привет Мастера...
Подскажите, плиизз, что лучше:
1. Создавать для каждой TQuery отдельную TTransaction или для нескольких TQuery одна TTransaction???
2. После выполнения нескольких SELECT что лучше - ROLLBACK или COMMIT???


 
sniknik ©   (2004-09-14 11:43) [1]

> 2. После выполнения нескольких SELECT что лучше - ROLLBACK или COMMIT???
;о)))
всегда, слышиш всегда! лучше ROLLBACK. (для тебя..., не испортиш ничего)


 
Alex_Bredin ©   (2004-09-14 11:47) [2]

сначала роллбэк потом коммит


 
Sirus   (2004-09-14 11:50) [3]

>> Alex_Bredin ©   (14.09.04 11:47) [2]
>> сначала роллбэк потом коммит

Это что???


 
Digitman ©   (2004-09-14 11:50) [4]


> 1. Создавать для каждой TQuery отдельную TTransaction или
> для нескольких TQuery одна TTransaction???


есть понятия "читающая транзакция" и "модифицирующая транзакция"
отсюда и пляши : селективные запросы зачастую можно ассоциировать с одной и той же читающей транзакцией, модифицирующие же запросы - с модифицирующей транзакцией ... но это не строго, все зависит от конкретно реализуемой логикой - иной раз требуется и отдельная транзакция на отдельный запрос


> 2. После выполнения нескольких SELECT что лучше - ROLLBACK
> или COMMIT???


на первый взгляд это безразлично : если в данной транзакции не было произведено никаких изменений в базе (т.е. в ее контексте исполнялись только селективные запросы, один или более), то и COMMIT и ROLLBACK приведут к одному и тому же видимому на стороне клиента рез-ту - закрытию наборов данных, полученных в контексте транзакции


 
Sirus   (2004-09-14 11:52) [5]

И еще вопрос:
Приложение использует DLL...
Что лучше??? делать одно соединение с базой из основного приложения, а из DLL использовать это соединение???
Или делать для каждого DLL отдельное соединение???
Формы из DLL вызываются немодально...


 
Sirus   (2004-09-14 11:59) [6]

>> Digitman ©   (14.09.04 11:50) [4]
У меня после великого множества всяких там SELECT"ов в случае с ROLLBACK транзакция завершается достаточно долгое время, по сравнению с COMMIT... Вот я и получается впечатление: что, может COMMIT просто плюет на транзакцию, в случае если там не было изменений, а ROLLBACK перепроверяет там что-то на предмет изменений??? (уффф... аж башка закружилась...)


 
Digitman ©   (2004-09-14 12:06) [7]


> Sirus   (14.09.04 11:52) [5]


> Приложение использует DLL


на здоровье


> Что лучше??? делать одно соединение с базой из основного
> приложения, а из DLL использовать это соединение???


можно и одно соединение использовать, можно и несколько ... опять же - все зависит от сквозной логики


> Формы из DLL вызываются немодально


а формы-то здесь причем ?


> ROLLBACK перепроверяет там что-то на предмет изменений?


механизм работы отката в IB тесно связан с механизмом т.н. "уборки мусора" (garbage collection) .. подробней о концепции и логике GC можно почитать, например, в статьях на ibase.ru


 
DSKalugin ©   (2004-09-14 14:46) [8]

Двумя словами не объясниш. Читать надо. Причем долго и вдумчиво
Транзакции в InterBase
http://ibase.ru/devinfo/ibtrans.htm
Транзакции, многоверсионность записей, сборка мусора и т.п.
http://ibase.ru/devinfo/oitoat.htm
Управление транзакциями в IBExpress (IBX)
http://ibase.ru/devinfo/ibxtrans.htm



Страницы: 1 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
14-1095699462
}|{yk
2004-09-20 20:57
2004.10.10
Группа Тартак, или украинский рэп


3-1094708784
Hohol
2004-09-09 09:46
2004.10.10
ADO+DBF - проблеммы с кодировкой


1-1095613265
Chizh
2004-09-19 21:01
2004.10.10
ActionManager.Style


14-1095911456
Onix
2004-09-23 07:50
2004.10.10
Наука администрирования


9-1086951394
Bizon's
2004-06-11 14:56
2004.10.10
Помогите ламеру с DelphiX