Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Блокирование доступа к таблице?  [new]
madg
Member

Откуда:
Сообщений: 530
База при импорте данных из *txt файла использует таблицу Temp.
После того, как пользователь предварительно просмотрит импортируемые данные он добавляет их в теблицу Katalog и, одновременно с этим (практически) удаляет данные и таб.Temp.
Вопрос собственнос вот вчем:
Если одновременно 2 пользователя добавят данныне в Temp, а потом один из них импортирует "свои" данные и удалит "чужие" данные.
Как организовать зациту от такой ситуации?
Удаление с использованием фильтра, или при помощи временной болокировки таблицы?
Если есть способ организации второго варианта с уважением использовал!
Ok.madg
22 май 04, 23:35    [694950]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Во временной таблице можно сделать поле "имя юзера". Тогда каждый юзер будет добавлять и стирать только записи со своим именем.
22 май 04, 23:39    [694954]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Конкретнее так:

1. DefaultValue этого поля: CurrentUser()
2. При стирании: where ...=CurrentUser()
3. При копировании из временной таблицы аналогично.

Если юзеры не вводят имя при входе, то вместо CurrentUser() можно использовать имя компа или что-нибудь еще.
22 май 04, 23:42    [694956]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
Msmaster
Member

Откуда: Иркутск
Сообщений: 85
Создаёшь таблицу с полем , например LOCK (integer), ЗНАЧЕНИЕ 0. При добавлении в таблицу TEMp, проверяешь IF ЗНАЧЕНИЕ этого поля LOCK. Если 0 то никто ничего не делает, тогда работаем. Если 1 ,то уходим.
23 май 04, 06:02    [695002]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
я в таких случаях каждому юзеру бросаю в /root/Windows mdb где храню его ник(сетка Novell имена машин и прочее не уникальны)
а в Temp конечно отдельное поле под ник как писали выше
23 май 04, 09:30    [695022]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
madg
Member

Откуда:
Сообщений: 530
Спасибо за предложенные варианты.
Организовал проверку удаления по уникальному №документа.
А потом додумался вот до чего именно Temp оставить локально вместе с интерфейсом, а остальные таблицы на сервак. Я так понимаю временную таблицу каждый пользователь будет использовать свою.(или как?).
Но вопрос остается!
Проблема собственно не в удалении данных используя фильтр, а в самом
принципе:
ВОЗМОЖНО ЛИ БЛОКИРОВАНИЕ ОТДЕЛЬНЫХ КОМПОНЕНТОВ БАЗЫ В ОТВЕТ НА КАКОЕ ЛИБО СОБЫТИЕ!? (открытие формы или еще какие?*)

Спасибо!
23 май 04, 12:19    [695047]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
блокировать можно таблицы и записи в них
занимается этим JET
подробности 2-ой том Гетца лучше некому
23 май 04, 12:47    [695055]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Совет Msmaster'а небезупречен. Он не спасет от ситуации, когда два юзера занесут 1 одновременно.
23 май 04, 12:54    [695059]     Ответить | Цитировать Сообщить модератору
 Re: Блокирование доступа к таблице?  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
+ необходимость ручного обслуживания семафора который залипнет после первого падения клиентской части
23 май 04, 13:02    [695063]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить