Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.12.2003, 12:04
|
|||
|---|---|---|---|
|
|||
Методы борьбы? |
|||
|
#18+
Доброго времени суток! Может ли кто помочь разрешить следующую проблему: Имееется БД Access, доступ при помощи Delphi+ADO, многопользовательский. Проблема следующая: если один пользователь удалил запись, а другой пытается редактировать возникает Exception. Параметры DataSet'a следующие: CursorLocation = clUseClient, CursorType=ctStatic, Properties'ы Update Criteria и Update Resync настроены и проблем с одновременным редактированием записи не возникает. Был бы очень признателен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.12.2003, 12:11
|
|||
|---|---|---|---|
|
|||
Методы борьбы? |
|||
|
#18+
А что бы ты хотел, в такой ситуации? Если разумное сообщение, то нужно обрабатывать Exception. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.12.2003, 12:27
|
|||
|---|---|---|---|
|
|||
Методы борьбы? |
|||
|
#18+
Вот блин, никак не научусь формулировать свои мысли. В общем, Exception ловится и обрабатывается, все ок, но с текущей записи никак не уйти. Вопрос собственно говоря следующий: ADODataSet.Requery не срабатывает, выхожу из ситуации последовательностью команд: ADODataSet.Close; ADODataSet.Open. А есть ли другое решение? Да и вообще, не хотелось бы переоткрывать DataSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.12.2003, 13:30
|
|||
|---|---|---|---|
|
|||
Методы борьбы? |
|||
|
#18+
Не-а, не покатит. Забыл сказать, навигация по записям осуществляется при помощи Grid'а и при возникновении данной ситуации становится невозможной. А сообщение вылетает следующее: "Handle строки ссылается на удаленную строку или строка помечена для удаления." Вообще ситуация, когда несколько пользователей обращаются к одному и тому же набору строк возникает редко, но хотелось бы перестраховаться. И попутно еще вопрос, можно ли при помощи ADO+Access явно установить блокировку на запись? В общем-то у меня есть несколько решений, но все они какие-то неэлегантные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.12.2003, 13:42
|
|||
|---|---|---|---|
Методы борьбы? |
|||
|
#18+
Конечно не прокатит. Ведь при попытке сдвига с измененной записи сначала происходит Post, а в нем, как мы знаем, в данной ситуевине вылетает exception. Рекомендации. Попробуй при отлове Exception вызывать Cancel у датасета, это отменит все изменения. Однако датасет останется в неактуальном состоянии, т.к. он расходится с базой. Поэтому его нужно привести в соответствие с базой. Сколь я не пробовал всякие Refresh и т.п, ничего не помогает кроме Close->Open. Чтобы пользователь оставался при этом не слишком обломлен, я запоминаю номер записи, а после Open прыгаю на этот номер. При удачно стечении обстоятельств пользователь останентся примерно на том же месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.12.2003, 14:35
|
|||
|---|---|---|---|
Методы борьбы? |
|||
|
#18+
я тоже придерживаюсь мнения что надо делать Cancel, а затем Requery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.12.2003, 14:45
|
|||
|---|---|---|---|
|
|||
Методы борьбы? |
|||
|
#18+
Спасибо огромное всем кто откликнулся. Времени больше нет, поэтому придется использрвать Close->Open. Хотя и данный способ, и Requery сильно пртребляют ресурсы (У Дженнингса хорошо все описано, хотя и в разрезе VB). Можно, конечно, использовать другую СУБД, но в данном случае, к сожалению, я не хозяин положения. (Прям стихами заговорил.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&tablet=1&tid=2115620]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 371ms |

| 0 / 0 |
