Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2016, 21:49   #1
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию Приложении MDI и транзакции

Здравствуйте. Перерыл пол интернета, но так и нашел конкретного ответа.
Ситуация такая, у меня приложение MDI, использую FibPlus на датамодуле 2 pFIBTransaction : 1 - Read(длинная) 2 - Write(короткая) как написано в мануалах. Все гриды во всех MDIChild окнах подключены к транзакции Read.
Правильно ли я понимаю, что по закрытию окна с гридом, я должен сделать или commit или rollback???? Но тогда в остальных открытых окнах данные теряются, нужно будет пере открывать все гриды. У FIBPlus есть хорошая фишка CommitRetaining, попробовал использовать её, но после проверки оказалось, что транзакции остаются висеть...
вот пример
Код:
  Q := TpFIBDataSet.Create(nil);
  try
    with Q do
      begin
        Tr.DefaultDatabase := Dm.Db;
        Transaction := Tr;
        Tr.StartTransaction;
        Database := Dm.Db;
        SQLs.SelectSQL.Add('select * from tov');
        Active := True;
        Transaction.CommitRetaining;
      end;
  finally
    Q.Free;
  end;
ShowMessage('server='+IntToStr(Dm.Db.ServerActiveTransactions.Count));
ShowMessage('client='+IntToStr(Dm.Db.ActiveTransactionCount));
В этом коде остаются активные транзакции и на клиенте и на сервере.
Подскажите, кто как поступает в таких ситуациях.
Заранее спасибо.

Последний раз редактировалось tarakan1983; 06.02.2016 в 21:52.
tarakan1983 вне форума Ответить с цитированием
Старый 08.02.2016, 07:16   #2
FoCUS313
 
Регистрация: 22.01.2016
Сообщений: 8
По умолчанию

CommitRetaining, есть и у обычных компонентов, он только увеличивает транзакцию.
И вообще по моему, FIBPlus - работают с 2-мя транзакциями: одна-читает, другая-пишет. Почитайте мануал...
http://orgsoft.xyz
FoCUS313 вне форума Ответить с цитированием
Старый 08.02.2016, 10:37   #3
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
Сообщение от FoCUS313 Посмотреть сообщение
И вообще по моему, FIBPlus - работают с 2-мя транзакциями: одна-читает, другая-пишет. Почитайте мануал...
Цитата:
на датамодуле 2 pFIBTransaction : 1 - Read(длинная) 2 - Write(короткая) как написано в мануалах
Вопрос в другом:
на 1-ой первой chilld-форме dataset привязан к длинной(читающей)
на 2-ой первой chilld-форме dataset привязан к длинной(читающей)
я на первой форме делаю commit, что происходит со второй? Правильно... набор данных закрывается.
Подскажите, кто как поступает в таких ситуациях.
tarakan1983 вне форума Ответить с цитированием
Старый 11.02.2016, 07:23   #4
FoCUS313
 
Регистрация: 22.01.2016
Сообщений: 8
По умолчанию

Цитата:
Вопрос в другом:
на 1-ой первой chilld-форме dataset привязан к длинной(читающей)
на 2-ой первой chilld-форме dataset привязан к длинной(читающей)
я на первой форме делаю commit, что происходит со второй? Правильно... набор данных закрывается.
Подскажите, кто как поступает в таких ситуациях.
После Cimmit датасеты закрываются, соответственно остается их открыть заново.

Вот почитайте на их сайте про транзакции: http://www.devrace.com/ru/fibplus/articles/2169.php
http://orgsoft.xyz
FoCUS313 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вырезать, копировать в mdi приложении karambol Общие вопросы .NET 0 28.12.2010 03:49
PageControl как панель кнопок открытых окон в MDI приложении Vit@L Общие вопросы Delphi 10 22.12.2009 13:50
Закрытие формы MDIChild в MDI приложении Avalonix Общие вопросы Delphi 4 29.05.2008 16:45
Открытие файлов в MDI-приложении Eofol Общие вопросы Delphi 2 20.12.2007 22:05
Создание пиксельной сетки в MDI приложении shkiper Общие вопросы Delphi 5 06.06.2007 18:56