Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
14-1095864160
gn
2004-09-22 18:42
2004.10.10
Мастера а кто какой программой пользуется


1-1095752480
Turbid
2004-09-21 11:41
2004.10.10
UTF-8?


1-1095848899
MANGOL
2004-09-22 14:28
2004.10.10
операции сравнения


14-1095934931
Layner
2004-09-23 14:22
2004.10.10
OpenSourse


1-1095862935
Cosinus
2004-09-22 18:22
2004.10.10
ComponentCount (Components[i])... Как формируется?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский