powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5. Принудительное выставление блокировки
3 сообщений из 3, страница 1 из 1
ASE 12.5. Принудительное выставление блокировки
    #35438321
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли в ASE 12.5 выставить шаре-блокировку? Примерно как это делается в Оракле(select for update).
Я нашел такой пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
begin transaction

update my_table set some_field = some_field where <все чё надо>

....

select * from my_table where <все чё надо>

...

commit

Но он выставляет иксклюзивную блокировку то есть читать тоже не дает!
...
Рейтинг: 0 / 0
ASE 12.5. Принудительное выставление блокировки
    #35438354
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den пишет:
> Можно ли в ASE 12.5 выставить шаре-блокировку? Примерно как это делается
> в Оракле(select for update).

Так в ASE тоже есть SELECT ... FOR UPDATE.
Только не SHARED он выставляет, а UPDATE, по-моему.
Хотя я могу ошибаться, никогда им не пользовался.
Теоретически для FOR BROWSE в ASE и SHARED -а
неотпускаемого должно хватать, поскольку SHARED и
UPDATE несовместимы.

> Я нашел такой пример:
>
> begin transaction
>
> update my_table set some_field = some_field where <все чё надо>
>
> ...
>
> select * from my_table where <все чё надо>
>
> ..
>
> commit
>
>
> Но он выставляет иксклюзивную блокировку то есть читать тоже не дает!

напишите вместо UPDATE аналогичный SELECT с фразой

at isolation repeatable read
в конце.

repeatable read | 2
specifies transaction isolation level 2 for the query.


Также есть хинт HOLDLOCK

from_clause ::=
from table_reference [,table_reference]...
table_reference ::= table_view_name | ANSI_join
table_view_name ::=
[[database.]owner.] {{table_name | view_name}
[as] [correlation_name]
[index {index_name | table_name }]
[parallel [degree_of_parallelism]]
[prefetch size ][lru | mru]}
[holdlock | noholdlock]
[readpast]
[shared]

holdlock
makes a shared lock on a specified table or view more restrictive by holding it
until the transaction completes (instead of releasing the shared lock as soon as
the required data page is no longer needed, whether or not the transaction has
completed).
The holdlock option applies only to the table or view for which it is specified,
and only for the duration of the transaction defined by the statement in which
it is used. Setting the transaction isolation level 3 option of the set command
implicitly applies a holdlock for each select statement within a transaction.
The keyword holdlock is not permitted in a select statement that includes the
for browse option. You cannot specify both a holdlock and a noholdlock option in
a query.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5. Принудительное выставление блокировки
    #35438444
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБО!!!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5. Принудительное выставление блокировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]