Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Вниз

блокировка записи   Найти похожие ветки 

 
beginer   (2004-10-25 12:07) [0]

Подскажите,пожалуйста,как можно заблокировать уже редактируемую запись с помощью транзакций.Если не трудно приведите какой-нибудь примерчик,а то ума не приложу что и где писать надо


 
Карелин Артем ©   (2004-10-25 12:12) [1]

IB не блокировщик.


 
Johnmen ©   (2004-10-25 12:15) [2]

Можно сделать псевдоблокировку.
Как - написано здесь ibase.ru, ищи...


 
HSolo ©   (2004-10-25 12:17) [3]

http://ibase.ru/devinfo/pslock.htm


 
beginer   (2004-10-25 12:25) [4]

Прочитал,но так и не понял,что делать нужно.А на пальцах это объяснить никак нельзя?


 
}|{yk ©   (2004-10-25 12:56) [5]

написать в запросе for update


 
beginer   (2004-10-25 12:58) [6]

А кто-нибудь из присутствующих делал подобные блокировки в своих программах?


 
Johnmen ©   (2004-10-25 13:12) [7]

Ты все же почитай по ссылке HSolo ©   (25.10.04 12:17) [3]
особенно п.4


 
Роман Снегирев   (2004-10-25 13:41) [8]

select ... for update with lock
но тогда нужен FB 1.5 и компоненты подходящие (FibPlus например)


 
Vemer ©   (2004-10-25 14:24) [9]

ИМХО это кривой способ блокировки, т.к. при зависании клиента записи могут стать надолго недоступными. Поля статуса + разруливание на клиенте/в ХП - намного проще.


 
vv_fran   (2004-10-25 16:26) [10]

У меня тоже, типа как у Vemer, но через таблицу блокировок - в ней № записи и кто открыл. Чужие записи открываются только на чтение.


 
Роман Снегирев   (2004-10-25 17:56) [11]

to Vemer and vv_fran
ну вот рухнет приложение у одного из клиентов, и что дальше? а дальше то, что записи навечно (до вмешательства админа) остануться "заблокированными"


 
Vemer ©   (2004-10-25 19:19) [12]

В моем случае посмотреть, какие записи (и кем) заблокированы и освободить их намного проще. Аварийную кнопку хоть каждому пользователю и лог ее нажатий.


 
vv_fran   (2004-10-26 10:24) [13]

В догонку  Vemer - у меня в приложении есть пункт меню "Сбросить блокировку". И он нужна только если комп. сломался физически. При повторном запуске приложения таблица блокировки обновляется.


 
Vemer ©   (2004-10-26 12:28) [14]

Вдогонку самому себе - на SQL.Ru сурьезные люди, сурьезно занимающиеся БД за блокировку транзакцией вообще руки сразу предлагают отрывать прогерам )). Так что можно сразу готовиться быстро убегать от благодарных юзеров.


 
kdv   (2004-10-26 18:12) [15]

to Vemer:

если б ты почитал про реализацию with lock в IB, то понял бы, что update от select with lock не отличаются. т.е. они отличаются конечно, но в обоих случаях генерится версия. Кроме того, если в после update клиентский софт отвалится, то точно так же версии "застрянут". Застревают они не навсегда, а до тех пор, пока сервер не обнаружит что клиент отвалился. в зависимости от настроек сервера и tcp это может быть от "моментально" до "3 минуты" по умолчанию.

Так что в данном случае with lock наоборот, лучше чем ручной update.

насчет "сурьезных людей", которые "за блокировку ..." - любая модификация данных это блокировка, до окончания транзакции.
И в IB/FB даже есть блокирование таблиц целиком при старте транзакции и по ходу. И в версионнике всегда (!) блокировки намного легче и менее страшные. чем в блокировочном сервере.
К тому же, большинство коммерческих серверов именно стремится к версионности. Хотя бы будущая версионность в Yukon, как будто прямо срисованная с IB/FB (а не с Оракла, к примеру).



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

Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.034 c
14-1099387661
Digitman
2004-11-02 12:27
2004.11.21
и вновь - об Internal Server Error ..


3-1098502374
Vasis
2004-10-23 07:32
2004.11.21
Выборка по дате


1-1099886622
Кто---то
2004-11-08 07:03
2004.11.21
Существует ли функция обратная Format ? Чтобы вытаскивала по


1-1099664671
Сергей_
2004-11-05 17:24
2004.11.21
Сворачивание в tray: а память?


1-1099671777
nick123
2004-11-05 19:22
2004.11.21
Передача указатель





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский