По умолчанию транзакция, пишущая или читающая?
-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
По умолчанию транзакция, пишущая или читающая?
Люди добрые подскажите пожалуйста!
Я использую IBX и на форму (Delphi) кидаю транзакцию, т.е. там уже прописаны параметры транзакции, она по умолчанию какая, пишущая или читающая?
Я использую IBX и на форму (Delphi) кидаю транзакцию, т.е. там уже прописаны параметры транзакции, она по умолчанию какая, пишущая или читающая?
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Re: По умолчанию транзакция, пишущая или читающая?
А что такое "пишущая" или "читающая"? В IBX есть для датасета ДВА свойства для транзакций как в FIB+ типа DefaultTransaction и UpdateTransaction? Или свойство для задания транзакции у датасета одно? Тогда от датасета зависит будет транзакция читающей или пишущейстудент-практикант писал(а):Люди добрые подскажите пожалуйста!
Я использую IBX и на форму (Delphi) кидаю транзакцию, т.е. там уже прописаны параметры транзакции, она по умолчанию какая, пишущая или читающая?

А пока ты на форму кинул только транзакцию, она у тебя еще ни такая ни сякая

можно было не разводить псевдо-обсуждение, а указать на www.ibase.ru/devinfo/ibx.htm , и спросить, что там непонятно.
-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
У IBTransaction На Object Inspector я уже взглянул, а точнее я еще взглянул на прописанные параметры транзакции и что мы видим по умолчанию
read_committed
rec_version
nowait
Соответсвенно вопрос - эта транзакция пишущая или читающая. Поскольку мы сдесь не видим вначале и не read и не write. Большая просьба ответить одним словом какая - пишущая или читающая. Ведь какая то она должна быть по умолчанию, и по возможности, большая просьба, не посылайте меня на толмуты литературы, а ответьте одним словом - пишущая или читающая эта транзакция. (мое мнение, скорее всего не читающая точно, пишущая... да? или какая? не знаю... подскажите мне пожалуйста)
read_committed
rec_version
nowait
Соответсвенно вопрос - эта транзакция пишущая или читающая. Поскольку мы сдесь не видим вначале и не read и не write. Большая просьба ответить одним словом какая - пишущая или читающая. Ведь какая то она должна быть по умолчанию, и по возможности, большая просьба, не посылайте меня на толмуты литературы, а ответьте одним словом - пишущая или читающая эта транзакция. (мое мнение, скорее всего не читающая точно, пишущая... да? или какая? не знаю... подскажите мне пожалуйста)
-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
По указанному адресу
www.ibase.ru/devinfo/ibx.htm
я там тоже искал раньше, я не нашел ответа на мой вопрос
печально, мне просто интересно это знать
www.ibase.ru/devinfo/ibx.htm
я там тоже искал раньше, я не нашел ответа на мой вопрос

что ж ты врешь, причем не краснея?я там тоже искал раньше, я не нашел ответа на мой вопрос
меня просто бесит, когда мне приходится цитировать собственные же статьи. Особенно когда то что "не нашел" изложено абсолютно четко:
www.ibase.ru/devinfo/ibx.htm
TIBTransaction
...
В параметрах транзакции (картинка слева, вызывается по двойному клику на компоненте, или при нажатии кнопки ... в свойстве Params) указываются константы, соответствующие IB API (без префикса isc_tpb_). Если параметры не указаны (пусто), то IBX использует параметры транзакции по умолчанию, которые соответствуют уровню изолированности snapshot+wait (FIBPlus, в отличие от IBX, с пустыми параметрами стартует транзакцию "read write read_committed no wait"). То есть, в транзакции с такими параметрами не будут видны никакие изменения базы данных (кроме тех, которые выполнены в этой транзакции).
...
Я не знаю, как надо читать, чтобы не прочитать.
Читаю вслух:
1. если параметры в IBTransaction не указаны, то используются параметры транзакции по умолчанию (описано в ibtrans.htm). Именно так, со ссылкой, и написано в процитированном абзаце.
2. www.ibase.ru/devinfo/ibtrans.htm :
читаем про интересующий тебя read write:
"READ WRITE / READ ONLY (константы write и read) - операторы внутри транзакции могут или не могут модифицировать данные. По умолчанию READ WRITE, т.е. допускается и чтение и запись."
хотя, ... нет предела совершенству. подобные утверждения про "читал, и не нашел" или "читал, и ничего не понял", заставляют меня редактировать этот текст до такого варианта, когда даже тот, кто читает через предложение, не сможет пропустить нужное. Правда, был тут один случай, когда человек не находил в этой статье исчерпывающий и максимально просто написанный абзац.
так что статью чуть дополню, там где ты "не нашел".
Если я правильно понял, ты утюжил текст про двутранзакционный датасет, никак не понимая что делает транзакцию пишущей, а что читающей. И почему-то ты игнорировал описание параметров транзакций.
так что статью чуть дополню, там где ты "не нашел".
Если я правильно понял, ты утюжил текст про двутранзакционный датасет, никак не понимая что делает транзакцию пишущей, а что читающей. И почему-то ты игнорировал описание параметров транзакций.
-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
Да, да, я читал.... В статье написано -->
Если параметры не указаны (пусто), то IBX использует параметры транзакции по умолчанию, которые соответствуют уровню изолированности snapshot+wait
Но!.... ПУСТО и ПО УМОЛЧАНИЮ вещи разные! У нас параметры указаны, указаны по умолчанию! У нас не пусто! У нас совсем даже не пусто, поскольку у нас по умолчанию мы видим следующее в параметрах транзакции...
read_committed
rec_version
nowait
Мы не видим пусто, а видим целые 3 строки и стало быть не пусто!
Давайте спокойно и рассудительно разберемся!
Ну е мое надо же выяснить! 
Если параметры не указаны (пусто), то IBX использует параметры транзакции по умолчанию, которые соответствуют уровню изолированности snapshot+wait
Но!.... ПУСТО и ПО УМОЛЧАНИЮ вещи разные! У нас параметры указаны, указаны по умолчанию! У нас не пусто! У нас совсем даже не пусто, поскольку у нас по умолчанию мы видим следующее в параметрах транзакции...
read_committed
rec_version
nowait
Мы не видим пусто, а видим целые 3 строки и стало быть не пусто!
Давайте спокойно и рассудительно разберемся!


-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
она ни да, она ни нетстудент-практикант писал(а):Да вообщем то значительно все проще... Вот транзакция
read_committed
rec_version
nowait
она какая пишущая или читающая, да или нет, какая?


ты доведешь kdv до инфаркта, он же тебе даже избранное процитировал, чего же боле?
на пальцах: если в параметрах не указано явно READ или WRITE, значит подразумевается WRITEПо умолчанию READ WRITE, т.е. допускается и чтение и запись."
ясно. почти диагноз.Но!.... ПУСТО и ПО УМОЛЧАНИЮ вещи разные! У нас параметры указаны, указаны по умолчанию!

объясняю по пунктам.
1. по умолчанию - это когда НЕ указано.
2. в IB API у Transaction Parameter Block есть умолчательные значения. Которые перечислены в ibtrans.htm. Я уже процитировал, что READ WRITE - ПО УМОЛЧАНИЮ.
3. компоненты, конечно, могут перекрывать пустой TPB. То есть, если он не указан, задавать свой. Но - при указании TPB в IBTransaction к этим параметрам никогда ничего лишнего не добавляется. Поэтому если что-то не указано, то оно ПО УМОЛЧАНИЮ, см пункты 1 и 2.
4. когда параметры указаны - это НЕ ПО УМОЛЧАНИЮ. Если параметры отличаются от умолчательных. Ферштейн?
Допустим, ты можешь написать в IBTransaction.Params
concurrency
и этот параметр передастся на сервер при старте транзакции, но это то же самое что и без параметров, т.е. по умолчанию.
ты можешь указать
read committed
и это будет НЕ ПО УМОЛЧАНИЮ.
где ты в этих параметрах видишь read write ? Нету? Значит read write ПО УМОЛЧАНИЮ!она какая пишущая или читающая, да или нет, какая?
-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
concurrency ПО УМОЛЧАНИЮ, т.е. сдесь параметры и read и write
Допустим, ты можешь написать в IBTransaction.Params
concurrency
это то же самое что и без параметров, т.е. ПО УМОЛЧАНИЮ.
е мое а сдесь НЕ ПО УМОЛЧАНИЮ.... тут она какая тогда?ты можешь указать
read committed
и это будет НЕ ПО УМОЛЧАНИЮ.
или тут по принципу, если вообще ничего не написано какая пишущая или читающая, то по умолчанию она будет и та и другая, и пишущая и читающая. так да?
мда. я думал что все будет лучше....е мое а сдесь НЕ ПО УМОЛЧАНИЮ.... тут она какая тогда?
смотри еще раз www.ibase.ru/devinfo/ibtrans.htm
итак. при старте транзакции, если НИЧЕГО не задано в ее параметрах, используются параметры по умолчанию.
Что это означает? Это означает что когда среди параметров транзакции сервер какой-либо параметр НЕ ВСТРЕЧАЕТ, то он использует ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ.
Умолчательные параметры транзакции описаны в той статье. Это
read write
concurrency
wait
Еще раз - если в параметрах транзакции пусто, то сервер будет использовать ИМЕННО ЭТИ ПАРАМЕТРЫ, которые я указал выше - read write, concurrency, wait.
При этом эти параметры можно указывать все, по отдельности, или не указывать вовсе - ничего не изменится.
Дальше. Чтобы ИЗМЕНИТЬ параметры транзакции, нужно задать НЕУМОЛЧАТЕЛЬНЫЕ значения.
Например, хочется wait сменить на nowait - надо УКАЗАТЬ NOWAIT.
Хочется сменить concurrency на read committed - укажи read committed.
Хочешь сменить read write на read - укажи READ.
Возможно, путаницу для тебя вносит само название READ_COMMITTED.
Но это УРОВЕНЬ ИЗОЛИРОВАННОСТИ, а не режим чтения или записи.
У read_committed есть также два режима - no_rec_version по умолчанию, и rec_version не по умолчанию.
Примеры:
указываем
read_committed
будет
read write
read_committed
wait
указываем
read
read_committed
nowait
- будет как сказано: только чтение (запись запрещена), уровень изолированности read committed (видимость закомиченных записей), с немедленной выдачей сообщений о конфликтах блокировок.
ТЕПЕРЬ ДОШЛО?

update: статью, конечно, я в таком ключе менять не буду.

-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
Ну вот теперь я счастлив!
Стоило только объяснить
С чего ты взял...
Ну теперь хорошо, выяснили, а то не знал и прям даже как-то печально было! Ох, прям гора с плеч!!!

Стоило только объяснить

Да, я знаюВозможно, путаницу для тебя вносит само название READ_COMMITTED.
Но это УРОВЕНЬ ИЗОЛИРОВАННОСТИ, а не режим чтения или записи.

Не, не видел и не претендую на сие немного странное утверждениеТы где-нибудь видел фразу, что "read_committed" это транзакция только для чтения?

С чего ты взял...
Ну теперь хорошо, выяснили, а то не знал и прям даже как-то печально было! Ох, прям гора с плеч!!!
-
- Сообщения: 60
- Зарегистрирован: 14 дек 2007, 10:56
И чего так все возмущаются, я не понимаю! Ведь тоже сами когда то были маленькими, ничего не знали, а старшие товарищи учили!!! когда были грудничками ведь тоже не знали про параметры транзакции, сами когда были грудничком даже Firebird слова такого не знали! только видимо забыли уже те далекие времена...
черта с два. приходилось читать с трудом добытые ПЕЧАТНЫЕ мануалы. На английском. Или разбираться методом тыка.Ведь тоже сами когда то были маленькими, ничего не знали, а старшие товарищи учили!!!
вот потому и не понимаешь. Сейчас т дока есть, на русском, книги, статьи в интернете, форумы... И, как бы, еще и приходится объяснятьИ чего так все возмущаются, я не понимаю!
