
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.04.2005, 21:35:32
|
|||
|---|---|---|---|
|
|||
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
Собственно сабж. Создаю в коде рекордсет, заполняю грид, обновляю записи в гриде, подсоединяю рекордсет, обновляю рекордсет ... Все здесь понятно. Вопрос к знатокам: типичная ситуация - как запретить другим пользователям базы редактировать записи кот. открыты другим с помощью отсоединенного набора. буду весьма благодарен если приведут фрагменты кода, намекнут как реализовать, или ткнут в какойнибуть топик :*) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.04.2005, 23:17:04
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
vbкорСобственно сабж. Создаю в коде рекордсет, заполняю грид, обновляю записи в гриде, подсоединяю рекордсет, обновляю рекордсет ... Все здесь понятно. Вопрос к знатокам: типичная ситуация - как запретить другим пользователям базы редактировать записи кот. открыты другим с помощью отсоединенного набора. буду весьма благодарен если приведут фрагменты кода, намекнут как реализовать, или ткнут в какойнибуть топик :*) Одно из решений - введение поля-флага, которое меняет свое значение, если приложение начинает редактировать записи (допустим, вводит туда имя компьютера или идентификатор процесса). "Встроенных решений", типа adOpenPessimistic, скорее всего, нет - отключенные НЗ для того и используются, чтобы не занимать БД и не кушать трафик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2005, 09:43:16
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
м-да, с флагом мысль интересная, но тогда нужен механизм таймаута, так как если прога зависнет или юзер уйдет на обед, то доступ к таблице закроется на неопр. время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2005, 10:05:22
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
"Полустандартное" решение: 1. Рекордсет грида никогда не возвращать серверу (не делать UpdateBatch) 2. Ввести еще одни рекордсет, который открывать на одной записи, на которой стоит грид и в момент начала редактирования. Этим рекордсетом и блокировать запись. Не удалось открыть - значит кто то уже редактирует эту запись. А пользователю - сообщение. Если после изменения одной ячейки в гриде, забрасывать в этот рекордсет значения всех полей, то можно и таймер применить чтобы принудительно прерывать редактирование во время чаепитий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2005, 12:03:08
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
Worobjoff 2. Ввести еще одни рекордсет, зачем тогда делать отсоединенный, если будет другой постоянный? :) может быть какую нибуть блокирующию записи процедуру на сервере запускать, а после редактирования останавливать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2005, 12:31:15
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
big-dukeм-да, с флагом мысль интересная, но тогда нужен механизм таймаута, так как если прога зависнет или юзер уйдет на обед, то доступ к таблице закроется на неопр. время. А почему "к таблице"? Можно хранить флаги, например, для документов... И в сообщении показывать логин и хост товарисча, ушедшего на обед :-)... Тут есть еще проблема, отваливания коннектов, "зависшие" блокировки надо чистить... Короче, гемора - немеренно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2005, 13:42:47
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
Артистзачем тогда делать отсоединенный, если будет другой постоянный? :) может быть какую нибуть блокирующию записи процедуру на сервере запускать, а после редактирования останавливать? Worobjoff...открывать на одной записи...Без применения дополнительных полей в таблице и пр. трюков. И, это - скорее стандартное чем нестандартное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2005, 17:29:22
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
А зачем вообще такие геморои с блокировкой? Ну достал кто-то еще раз эти записи и сохранил. Делаешь Resync и перезаписываешь еще раз. Или вообще отменяешь все изменения на основании UnderlyingValue. Или предлагаешь на выбор три набора, который из них сохранять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2005, 18:11:12
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
AntonariyА зачем вообще такие геморои с блокировкой? Ну достал кто-то еще раз эти записи и сохранил. Делаешь Resync и перезаписываешь еще раз. Или вообще отменяешь все изменения на основании UnderlyingValue. Или предлагаешь на выбор три набора, который из них сохранять. Чем меньше будут думать пользователи, тем для них лучше, по этому не надо предлагать им слишком уж большой выбор А почему способ с полем-флагом не проходит? Гемора не так уж и много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2005, 10:13:43
|
|||
|---|---|---|---|
Отсоединенный рекордсет - но записи на сервере блокированы. |
|||
|
#18+
Насчет пользователей согласен, а насчет остального, хозяин - барин. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=60&mobile=1&tid=2167924]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 322ms |

| 0 / 0 |
