![]() |
|
|
![]()
|
|
| CompWorm |
|
||||||||||||||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
Доброго времени суток!
Вопрос у меня, как всегда, нубско-теоретический Для работы с MSSQL я юзаю AnyDAC компоненты вопрос состоит в том, как правильнее/логичнее/грамотнее слинковать TADConnection, TADQuery и TADTransaction. например, если мы (без транзакций) связываем Connection с Query, то сделать это можно одним единственным способом: 1.0
тут всё просто и понятно. Однако Transaction можно подключить к Connection и так и сяк: 1.1
далее отмечу, что можно слинковать все три компонента разными способами: 2.1
2.2
2.х и так далее, все комбинации из
обращаю Ваше внимание на то, что соединения, типа
работать не будет, как и те, что написаны выше, что не совсем очевидно очевидно! для работы системы требуется, чтоб параметр Connection у нашего Transaction был не пустым! то есть работают только комбинации, где присутствует строчка
а вот
с виду ни на что не влияет вопрос: есть ли какой-то (не эстетический и если нет, то какой вариант классический? Это сообщение отредактировал(а) CompWorm - 20.3.2010, 05:03 |
||||||||||||||||
|
|||||||||||||||||
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
хорошо, ставлю вопрос по-другому. а с другими компонентами вы как управляетесь в плане транзакций?
|
|||
|
||||
| ZVano |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 11.12.2006 Где: Украина, Кривой Р ог Репутация: 1 Всего: 4 |
Если тут проходит аналогия с IBX-транзакцией, то так:
Окружение: ADConnection1 - центральный коннекшен ADTransaction1 - транзакция по-умолчанию для ADConnection1 ADQuery1, ADQuery2 ... ADQueryN - рабочие запросы к БД. ADTransaction2 - рабочая транзакция Связи (обычная схема работы):
Отработали с ADQuery1, ADQuery2 ... ADQueryN делаем либо ADTransaction2.Commit, либо ADTransaction2.Rollback В ADTransaction1 будут сидеть транзакции компонент(ADQueryX, ADTableX ...), не привязаных к определенной транзакции. Т.е. ADTransaction1 - транзакция по умолчанию. Кроме обычной схемы есть еще объединенная. Это когда используется одна транзакция для нескольких подключений к разным БД. Используется для того, чтобы выполнить одновременный гарантированый Commit|Rollback к разным БД. Добавлено 20110418: Проверил. Аналогия с компонентами IBX тут не проходит. Все изменения идут мимо транзакции, которая указана в компоненнтах ADQueryN. Это сообщение отредактировал(а) ZVano - 18.4.2011, 16:36 -------------------- НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению. Гуглим "Как правильно задавать вопросы" |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |