Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Пара вопросов по FIBPlus  (Прочитано 5784 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« : 08-11-2005 05:35 » 

1) Как заставить таблицу обновить вычисляемые поля?
Я изменяю значение полей, но вычисляемые поля не обновляются пока не сделаю commit.
Код:
DM.Plis.Edit;
 DM.PlisNASH.Value:=TimeNash.DateTime;
 DM.PlisKON.Value:=TimeKon.DateTime;
 DM.Plis.Post;
2) У меня читающие и пишущие трензакции разделены, т.е. одна pFIBTransaction общая для всех таблиц для чтения и отдельные pFIBTransaction для каждой таблицы на запись (UpdateTransaction).
Вопрос в следующем. Как оптимально настроить транзакцию для чтения, что бы минимизировать затраты ресурсов?
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 08-11-2005 06:53 » 

Цитата
(C) Кузьменко Дмитрий www.ibase.ru
Dirty Read - "грязное" (или "незафиксирование") чтение. Транзакция может читать не подтверджденные изменения, сделанные в других транзакциях. В IB этот режим не поддерживается. Например, если транзакции A и B стартовали, и поменяли записи, то они обе видят изменения друг друга.

Read Committed - невоспроизводимое (или неповторяемое) чтение. Транзакция может читать только те изменения, которые были подтверждены другими транзакциями. Например, если транзакции A и B стартовали и поменяли записи, то они не видят изменения друг друга. Транзакция А увидит изменения транзакции B только тогда, когда транзакция B завершится по commit. Перечитывание данных в транзакции может выдавать разные результаты.

Repeatable Read - воспроизводимое (или повторяемое) чтение. Транзакция видит только те данные, которые существовали на момент ее старта.

Serialized - сериализуемость. Транзакция выполняются так, как будто никаких других транзакций в этот момент не существует. Или, транзакции выполняются так, как будто они выполняются последовательно. Не поддерживается явно в IB, но может быть сэмулировано.


Первоисточник с подробным описание IB транзакций:
http://ibase.ru/devinfo/ibtrans.htm
Записан

С уважением, Oldy.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 09-11-2005 06:40 » 

Спасибо!
Понял свою ошибку в первом вопросе - у меня получалось что транзакция на запись записывала без commit и тран-я для чтения естественно не видела изменения и вычисляемые поля не обновлялись. Глупая ошибка  Улыбаюсь
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines