Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
1. SELECT * FROM my_table WHERE tmp_var=my_table.my_field AND ISRLOCKED() INTO ARRAY arr_tmp 2.SELECT count(ISRLOCKED()) FROM my_table WHERE tmp_var=my_table.my_field INTO ARRAY arr_tmp В обоих случаях создаётся массив, даже если запись не заблокирована, а можно ли SELECT'ом выбрать состояние ISRLOCKED()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 12:19 |
|
||
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
Выбрать все заблокированные не тобой записи SELE * FROM a1 WHERE !RLOCK() Выбрать все заблокированные тобой записи SELE * FROM a1 WHERE RLOCK() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 12:29 |
|
||
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
Да после такого селекта надо не забывать все отпстить UNLOCK ALL IN a1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 12:30 |
|
||
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
То есть применительно к моему случаю SELECT * FROM my_table WHERE tmp_var=my_table.my_field AND !RLOCK() INTO ARRAY arr_tmp - узнать, заблокирована ли (не мной) запись? Правильно? Дальше проверяю создан ли массиив (или анализ. _TALLY) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 13:25 |
|
||
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
Ответьте, люди, правильно ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 15:04 |
|
||
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
Смотря, что именно ты хочешь получить. Сформулируй словами. Дело в том, что IsRLocked() возвращает .T. для записей, которые ты сам и заблокировал. Т.е. она ничего не может сказать о блокироваках сделанных другими пользователями. Функция RLOCK() или LOCK() блокирует записи. Т.е. если запись не удалось заблокировать, значит она заблокирована другим пользователем. НО! весь вопрос в какой именно рабочей области? Т.е. в какой таблице? Дело в том, что команда Select-SQL может создавать временные таблицы на момент своего выполнения. И вполне вероятно, что она будет блокировать записи не в твоей исходной таблице, а в своей временной. Т.е. результат будет далек от ожидаемого. Еще раз. Сформулируй словами, что именно ты хочешь получить. Именно словами. Без функций и команд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 18:57 |
|
||
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
При вводе данных на форме проверяю данные на наличие двойняшек. Если есть двойняшка - перейти к ней ДА/НЕТ, если к ней проверяю состояние записи. Если заблокирована - предупреждаю пользователя об этом и название кпопки <Запомнить данные> меняется на <Обновить состояние>. Мысль была щупать эту запись на предмет блокировки, выбирая её по SELECT в массив. Массив создан/не создан - запись заблокирована/разблокирована. ЛЮБАЯ конструктивная критика приветствуется! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 19:48 |
|
||
|
Как SELECT'ом выбрать состояние ISRLOCKED()
|
|||
|---|---|---|---|
|
#18+
Проверка факта блокировки ДО попытки заблокировать данные не имеет смысла. Предположим, тебе удастся получить список записей заблокированных (или нет) другим пользователем. Но ведь ты не собираешься тут же пытаться внести изменения в эти записи. Будет ведь какой-то период времени на ознакомление и внос изменений пользователем. Где гарантия, что в этот период статус блокировки записи не изменится? Вдруг именно в момент просмотра данных одним пользователем другой как раз и заблокировал (или снял блокировку) эту запись. Как следствие - проверять статус блокировки надо в момент попытки самому заблокировать запись. В идеале, лучше организовать программу таким образом, чтобы время любой блокировки было как можно меньше. Идеально для этого подходит оптимистическая буферизация. Правда, несколько усложняется процесс сохранения внесенных изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 20:04 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32453213&tid=1596942]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 404ms |

| 0 / 0 |
