Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 407
от 03.10.2007, 08:35

Администратор:Gh0stik
В рассылке:Подписчиков: 306, Экспертов: 46
В номере:Вопросов: 1, Ответов: 2


Вопрос № 103666: Добрый день. Недавно начал работать с базой FireBird. Возникает вопрос по использованию транзакций. Подключаюсь к базе, в базе несколько таблиц. Табличами надо пользоваться одновременно, на каждую таблицы создовать отдельную транзакцию? Если есть...

Вопрос № 103.666
Добрый день.
Недавно начал работать с базой FireBird. Возникает вопрос по использованию транзакций. Подключаюсь к базе, в базе несколько таблиц. Табличами надо пользоваться одновременно, на каждую таблицы создовать отдельную транзакцию? Если есть еще редактирование таблицы, то под каждую таблицу также делать отдельную транзакцию под редоктирование?
Может мой вопрос звучит не совсемграмотно, но помогите чем можете.
Заране всем спасибо.
Отправлен: 28.09.2007, 08:22
Вопрос задал: AllexZ (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delph
Здравствуйте, AllexZ!

Держите одну активную тразакцию для всех SELECT-запросов, а вторую запускайте для логически связанных групповых изменений в базе (в том числе и для нескольких таблиц). Под логической группой изменений следует понимать изменения, которые должны быть подтверждены либо отменены вместе, как единое целое.
---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: 10-ый класс)
Ответ отправлен: 28.09.2007, 08:34

Отвечает: sir henry
Здравствуйте, AllexZ!
Давайте, наверное, начнём с теории.
Транзакция - это группа операций выполняемая с данными, которая либо должны быть выполнены все без исключения, либо не выполнено вообще ничего. Соответственно если начата транзакция и все операции завершились благополучно, то транзакуия подтверждается и данные, которые изменялись в буфере, встанут на свои места, где они должны быть по плану. Если хоть в одной операции что-то пошло не так, то транзакция отменяется и все возвращается к исходному состоянию.
Теперь зная это, Вы можете распланировать количество компонентов-транзакций.
Для начала нужно позаботится, чтобы для каждого компонента работающего с данными был свой компонент транзакций. Если у Вас, например, три компонента TIBQuery, то для каждого из них нужно свой компонент TIBTransaction.
Если Вы работаете с многотабличными запросами, для изменения данных в которых приходится пользоваться дополнительными компонентом TIBUpdateSQL, то для каждого из них должен быть свой компонент TIBTransaction.
Если же в Вашей программе используются только последовательные выборки, одна за другой, то Вы можете вообще ограничиться только одним компонентом TIBTransaction. :)
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 28.09.2007, 08:52


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.05 от 27.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное