Конференция "Базы" » вопрос по транзакциям
 
  • Giza (07.12.11 12:41) [0]
    Программа использует ХП. Delphi2009,InterBase2007.
    1) Стартует транзакция
    2) ХП1 читает и корректирует данные в БД
    3) ХП2 считывает уже измененные данные для дальнейших расчетов
    4) Commit транзакции

    Вопрос1: ХП2 "видит" изменения, внесенные ХП1?

    P.S.  заметила, что ХП2 почему-то периодически то "видит", то "невидит".
  • Медвежонок Пятачок © (07.12.11 12:48) [1]
    если убрать из вопроса лишнее упоминание о двух процедурах, то вопрос упрощается до:

    "видит ли транзакция свои собственные изменения".
  • sniknik © (07.12.11 13:08) [2]
    > вопрос упрощается до:
    > "видит ли транзакция свои собственные изменения".
    в таком виде, это уже и не вопрос, а типа аксиомы...
  • Медвежонок Пятачок © (07.12.11 13:14) [3]
    дык там и вопроса-то по сути нет, так она спрашивает, "видит ли?"
    и тут же говорит, "что иногда видит, а иногда не видит"
  • Ega23 © (07.12.11 13:23) [4]
    В Inerbase нет READ UNCOMMITTED
    Соответственно, если всё это дело происходит в одной транзакции, то "взлетит".
    Если в разных - "не взлетит".
  • Anatoly Podgoretsky © (07.12.11 13:23) [5]
    > Медвежонок Пятачок  (07.12.2011 12:48:01)  [1]

    Тоже не верно, вопрос выглядит иначе

    "видит ли другая транзакция изменения".

    Ответ просто - транзакции они разные бывают.
  • Anatoly Podgoretsky © (07.12.11 13:24) [6]
    > Медвежонок Пятачок  (07.12.2011 13:14:03)  [3]

    Но из этого не исходит, что ХП2 стартует в той же транзиакции, кроме того не
    изветен уровень изоляции.
  • Ega23 © (07.12.11 13:48) [7]

    > Ответ просто - транзакции они разные бывают.


    В IB и FB нет Read Uncommitted. В отличие от MSSQL.
    Нельзя сказать, что это какое-то жуткое неудобство, без которого невозможно жить.
    Но некое неудобство, особенно после работы с MSSQL, присутствует.
    Например.
    Есть некий параметризированный НД, который что-то там возвращает. Сидит в DataModule. Вызывается часто из разных мест программы.
    Чтобы получить Uncommitted-данные, мне либо транзакцию ему менять надо, либо создавать клон в рамках другой транзакции
  • Медвежонок Пятачок © (07.12.11 13:55) [8]
    Тоже не верно, вопрос выглядит иначе

    все там верно и истинно.
    вопрос упрощался для того, чтобы тётя поняла, что у нее не одна транзакция, а больше.
    Ибо если бы она была одна, то все снова свелось бы к вопросу: видит ли транзакция свои собственные изменения"
  • sniknik © (07.12.11 14:07) [9]
 
Конференция "Базы" » вопрос по транзакциям
Есть новые Нет новых   [134431   +10][b:0][p:0]