Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Вопрос по IBTransaction   Найти похожие ветки 

 
ILUHA   (2004-10-18 07:55) [0]

Здравствуйте. Не могли ли вы продсказать в поле Params компонента IBtransaction какие параметры вообще вводятся. Просто хотелось узнать а влруг пригодятся.


 
YurikGL ©   (2004-10-18 08:06) [1]

http://www.ibase.ru/develop.htm

Там еще много полезного


 
ILUHA   (2004-10-18 15:14) [2]

Я знаю что там много полезного но хотелось бы получить ответ на вопрос


 
Sergey13 ©   (2004-10-18 15:22) [3]

2[2] ILUHA   (18.10.04 15:14)
Двойной клик на компоненте тебе поможет.


 
sid ©   (2004-10-18 16:07) [4]

Снова привет Серега. Скажи, плиз, а что включить для работы нескольких приложений с одной таблицей: Snapshot, ReadCommitet, Read-only..., Read-write?


 
Sergey13 ©   (2004-10-18 16:13) [5]

2[4] sid ©   (18.10.04 16:07)
Я всегда работаю с ReadCommited.
А где почитать об этом см. в [1]


 
Vemer ©   (2004-10-18 19:33) [6]

Вот тебе мой пример.
2 Транзакции:
1) Read + Read Commited (Default у базы) - включена постоянно..
2) Обычная (без параметров) - стартует, делает свои дела и сразу завершается.

Первая видит изменения второй простым Open/Close.


 
jack128 ©   (2004-10-18 22:36) [7]

Vemer ©   (18.10.04 19:33) [6]
можно добавить snapshot для построения сложных отчетов..


 
ILUHA   (2004-10-19 04:43) [8]

Всем спасибо!!!! все понял! вопрос снимаю


 
Deniz ©   (2004-10-19 06:31) [9]

1. Читающая длинная
read
read_committed
rec_version
nowait
2. Пишущая короткая
write
concurrency
nowait
3. Для отчетов длинная
read
concurrency
nowait


 
Vemer ©   (2004-10-21 00:21) [10]

Пожалуйста объясните разницу по функциональному смыслу между 1-ым и 3-им вариантом. заранее спасибо.


 
jack128 ©   (2004-10-21 03:43) [11]

Vemer ©   (21.10.04 0:21) [10]
read_commited - транзакция видит все закоммиченные записи.
snapshot - видит только те записи, которые были закоммичены на момент СТАРТА этой транзакции.

read_commited нельзя использовать для постороения отчетов(если только отчет не является результатом одного запроса) вот почему:
есть таблица
goods
id goods_name price goods_count

первый запрос select * from goods - получили список товаров.. второй запрос select sum(price*goods_count) from goods  - получили полную стоимость всех товаров.  Если ты будешь выполнять эти запросы в read_commited - транзакции и между первым и вторым запросом будет вставлена новая запись в таблицу goods, то у тя получиться несогласованный отчет
например

select * from goods
результат
id goods_name price goods_count
0  кукла      10    5
1  пиво       5     2


тут другой юзер вставляет запись
2  водка      20    3

теперь ты выполняешь запрос
select sum(price*goods_count) from goods - получаешь 120 <> 10*5+5*2 - неправельный отчет.


 
msguns ©   (2004-10-21 10:01) [12]

И еще замечание.
По умолчанию в IBX используется опция SNAPSHOT, хотя нигде явно это не написано. Поэтому я, к примеру, в свое время хорошо поломал свою голову (и вылил грязи на бедных Вострикова с Ковязиным, которые, кстати, почти не уделили в своей книги внимания палитре IBX), т.к. при использовании неск.транзакций изменения, сделанные в одной таблице (например, справочнике), никак не хотели "показываться" при изменении другой таблицы (например, документов, имеющую ссылку на этот справочник). И вот только после штудирования статьи на ibase.ru я нашел ответы. В результате я принял такую схему (фрагмент датамодуля одного из простеньких проектов):

{ Модель доступа к БД "КНИГИ" использует следующие таблицы БД и транзакции:
 - Справочник издательств (поставщиков)   DR_PUB
 - Справочник магазинов розницы (получателей) DR_SHOP
 - Справочник изданий (книг) DR_BOOK
 - Справочник разделов литературы DR_PART
 - Прих.накладные. (Инвойсы) Заголовки
 - Прих.накладные. (Инвойсы) Фактура
 Использование транзакций:
 1. На справочники, открываемые поочередно (т.е. за раз может быть
   открыт для просмотра/модификации только один справочник) используется
   кратковременная транзакция trReWrSpr, в контексте которой данные
   справочника могут быть извлечены или изменены.
      Режимы работы:
      - транзакция стартует при открытии справочника и завершается
        при его закрытии.
      - при модификации справочника для транзакции используется метод Commit или
        Rollback с последующем переоткрытием справочника
      - редактирование справочников выполняется через не DB-aware контролы с
        последующей отменой или подтверждением изменений. Модификация непосре-
        дственно в таблице выполняется динамически создаваемым объектом
        класса TIBSQL в контексте той же (trReWrSpr), после чего делается
        Commit/Rollback с переоткрытием справочника и его перечиткой.
      Параметры транзакции:
        Write
        Nowait
        Concurrency
 2. Для доступа к инвойсам (как к заголовкам, так и к фактурам) используется
      две транзакции:
        На изменение (trWriteDok) - для одиночных (TIBSQL) запросов на вставку/
           изменение/удаление записей с параметрами:
               Write
               NoWait
               Concurrency
           после модификаций делаются переоткрытия (перечитки) соответствующих НД.    
        ПРИМЕЧАНИЕ: перед модификацией следует делает перечитку этой записи во
                    избежание конфликтов.
        Для чтения данных в режиме "долгоиграющего открытия НД" используется
           транзакция trReadDok с параметрами:
               Read
               Read_Commited
               Rec_Version
               NoWait
        ПРМЕЧАНИЕ: при переоткрытиях НД в рамках этой транзакции всегда дается
                   CommitRetain



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.042 c
9-1090603229
grouzd[E]v
2004-07-23 21:20
2004.11.21
Collision vs. Angle


14-1099375468
YurikGL
2004-11-02 09:04
2004.11.21
Измерение пропускной способности сети.


4-1096978886
andrey__
2004-10-05 16:21
2004.11.21
Избежать двойной запуск программы.


1-1100085524
Pentium133
2004-11-10 14:18
2004.11.21
Мой CreateParams


3-1098520411
Black
2004-10-23 12:33
2004.11.21
Защита базы данных ACCESS