Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как узнать, что запись заблокирована?
|
|||
|---|---|---|---|
|
#18+
При попытке одновременного обновления записи из двух различных транзакций, вторая, естественно, подвисает до окончания первой. Можно ли как нибудь узнать, что запись уже блокирована другой транзакцией? Или, чтобы IRowsetUpdate::Update() возвратил ошибку? Проблема возникла вот как: В диалоговом окне необходимо изменять несколько записей зараз. Причем принимать либо отменять все изменения. Для обеспечения работы OK/Cancel, при создании диалога создается транзакия, которая либо принимается, либо откатывается при закрытии. Ясно, что это не лучший способ, т.к. транзакция держится довольно долго. Есть мысль попробовать писать изменения во временную таблицу и потом вносить изменения, только уж больно кривым кажется такой метод. Может кто подскажет, как правильно решать подобные задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2002, 07:28 |
|
||
|
Как узнать, что запись заблокирована?
|
|||
|---|---|---|---|
|
#18+
"...при создании диалога создается транзакия..." Так работают только с версионниками. С блокировочником так работать категорически нельзя и надо уходить от этой ситуации любыми путями. Любое решение, какое бы оно ни было, будет все же лучше этой ситуации. "...изменения во временную таблицу и потом вносить изменения..." Очень неплохая идея. Узнать, что запись заблокирована, можно. Но в данном случае, это не решение. "...IRowsetUpdate::Update() возвратил ошибку..." SET LOCK_TIMEOUT 0 и ошибка будет гарантирована ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2002, 07:53 |
|
||
|
Как узнать, что запись заблокирована?
|
|||
|---|---|---|---|
|
#18+
Не понимаю смысл слов "версионники" и "блокировочники". Я пытался устанавливать timeout при помощи свойств транзакии ITransactionOptions. На что мне OLE DB Provider for SQL Server ответил, что timeout-ы не поддерживаются. Т.е., получается, что их поддерживает сервер, но не поддреживает провайдер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2002, 13:36 |
|
||
|
Как узнать, что запись заблокирована?
|
|||
|---|---|---|---|
|
#18+
Нет, открывать транзакцию при выводе окна ввода на экран и завершать ее по закрытию его - это смерти подобно. А если ваш пользователь ушел на обед, не нажав OK? Так и будут все остальные висеть?! А может, он помер, успев залочить машину 8-( Временная таблица в таких случаях гораздо более подходящее решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2002, 14:28 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32020778&tid=1824309]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
95ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 378ms |

| 0 / 0 |
