|
|
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Нужно, чтобы в процессе выполнения, вызываемого из VBA, запроса одним юзером остальные юзеры не имели доступа к базе данных. Т.е. допустим один юзер выполняет запрос на вставку. Нужно чтобы на время выполнения этого запроса для остальных юзеров база была не доступна. Как это сделать силами VBA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 20:32 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Никак. Не надо так делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 20:44 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Никак может есть и другие точки зрения??? Не надо так делать наверное в это трудно поверить, но мне нужно делать именно так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 23:06 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Только программно. Завести таблицу, в которой будут отражаться действия юзеров. Разрешать делать то-то и то-то только при условии, что никто в этот момент не делает сё-то и сё-то. При этом проверку надо делать в обе стороны: и не пускать в базу, когда некто выполняет запрос, и не давать выполнять запрос, пока кто-то есть в базе. И плюс надо позаботиться о ситуациях, когда два юзера захотят что-то сделать одновременно. Обычная проверка может просто не уловить то, что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 23:11 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Саныч, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 23:13 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Кстати, Саныч, я хотел бы услышать твое мниние. Как я говорил в одном из топиков, у меня возникла серьезная проблема со скоростью работы программы по сети. В качестве единственного ее решения было предложено ADP + SQL. Однако я считаю, что для моей задачи SQL Server это перебор. Появилась альтернативная идея организации работы программы. При открытии каждой формы создается копия таблицы (таблиц), с которыми эта форма работает. Если быть точным, то копируется не вся таблица, а только необходимые данные. Далее пользователь работает не напрямую с таблицей (таблицами), а с ее копией. Если внесены изменения, то программа с помщью соответствующих запросов вносит изменения в основную базу. Причем на момент изменений база блокируется от доступа других пользователей. Таким образом обходить та ситуация, когда одна база открыта на нескольких машинах. По-моему такой подход должен ускорить работу программы. -- Интересуюсь конструктивной критикой и прочими предложениями и дополнениями... -- А может быть это изобретение велосипеда??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 23:30 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
А почему слово услышать выделено? Типа, живой голос нужен? Ну, номер моей мобилы я тут где-то давал... ИМХО, это изврат. Конечно, сделать так можно . Работать будет. Но юзеры будут тихим словом проклинать того, кто принял решение сэкономить на покупке SQL сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 23:34 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
юзеры будут тихим словом проклинать Программа работает на 25 машинах. Запросы выполнятся за секунды, т.е ожидание не должно быть долгим. Ситуация, когда несколько юзеров одновременно (или почти одновременно) обращаются к базе очень редкая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 23:44 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
25 машин, 25 пользователей... Почему не SQL Server??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 00:09 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
>Почему не SQL Server??? Не знаю я его. А узнавать времени нет. --- Пока что программа работает на 7 машинах. А на 25 будет работать, когда она будет закончена. Конечно планируется переход на SQL Server и, изложенный выше, вариант решения проблемы является промежуточным. --- Хотелось бы услышать мнение о недостатках подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 08:59 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Причем на момент изменений база блокируется от доступа других пользователей. Таким образом обходить та ситуация, когда одна база открыта на нескольких машинах. Вот если поднять многие топики этого замечательного парня, то будет яркий пример того, как НЕЛЬЗЯ делать. К примеру, не целесообразно обновлять записи по рекордсету, когда есть запросы... Всеволод, я пользователь, очень люблю курить. Открыл я форму, притянул к себе данные - и припёрло мне покурить и по малой (а ещё страшнее по большой нужде) сходить. И заблокировал я всю базу. Ситуация, когда несколько юзеров одновременно (или почти одновременно) обращаются к базе очень редкая. Но она же всё равно рано или поздно возникнет. НЕЛЬЗЯ на это закладываться! Или я не так понял всю глубину мысли? P.S. Сиквел можно пока использовать в качестве хранилища данных и постепенно изучать методы, которые способны облегчить тебе выполнение той или иной задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 09:29 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Когда-то видел как решали подобную задачу (несколько навыворот), под MSA2.0 и Win95. Количество пользователей и машин того же порядка. У каждого пользователя свои данные и своя база, кроме того одна общая база. Когда пользователь решает, что его данные созрели для всеобщего обозрения, он их отправляет в общую базу, причем не все данные, а только те которые могут понадобиться другим. Если данные устарели, то в зависимости от их типа, данные либо удаляются до их редактировании, либо помечаются как устаревшие, либо заменяются после редактирования. Информация из общей базы подгружается в базу пользователя по мере необходимости и обрабатывается уже в ней. Эдакий эквивалент распределенных вычислений :). У этого метода было много недостатков, связанных с надежностью, быстродействием, разграничением прав, но свои задачи он решал. Без сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 09:30 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
>...заблокировал я всю базу. База блокируется ТОЛЬКО на момент выполнения соответствующих запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 14:45 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
ВсеволодНе знаю я его. А узнавать времени нет. Шел как-то мужик по лесу, видит, лесоруб дерево рубит на редкость тупым топором. Мужик и говорит: "эй, уважаемый, подточи топор-то, дело быстрее пойдет!". На что лесоруб ответил: "Некогда мне!!! Времени мало, надо деревьев поскорей нарубить!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 14:55 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Уважаемый zz, я сказал, что интересуюсь конструктивной критикой по предложенному решению проблемы. Или вас интересуют мои личные дела и распределение моего свободного и рабочего времени, а также стоящие предо мной задачи по работе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:18 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Нет. Ничего из вышеперичисленного меня совершенно не интересует. С чего вы это взяли? Совет Темного в данной ситуации вполне целесообразен, однако вы как-то странно на него отреагировали. Что и послужило поводом для написания мной постинга. В котором, кстати, не было ни слова ни о вашем личном времени, ни о стоящих перед вами задачах. С чего такая бурная реакция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:25 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Вообще говоря сделал так сделал = сколько народу столько мнений! У меня была подобная проблема- сделал так В форме все поля несвязные Запонлняем и insert into..... Может быть я что-то не так понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:27 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Выдержки из ЭТОГО топика: >25 машин, 25 пользователей... Почему не SQL Server??? Не знаю я его. А узнавать времени нет. --- Пока что программа работает на 7 машинах. А на 25 будет работать, когда она будет закончена. Конечно планируется переход на SQL Server и, изложенный выше, вариант решения проблемы является промежуточным. ------------------------- >С чего такая бурная реакция? Я тут не деревья рублю побыстрому, а занимаюсь серьезной объемной задачей, которую нужно качественно решить в максимально короткие сроки. vist А вот и единомышленники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:32 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
А меня запишите в единомышленники? :) - третьим буду? У меня похожая ситуация - SQL сервера нет и не предвидится, а разбираться с блокировками во время редактирования как-то нужно. Делал локальную копию редактируемой записи на компьютере пользователя, а при выходе из формы сохранял в "главной" таблице. Возможные блокировки отслеживал через On Error и цикл ожидания. База работает около 2-х лет, пользуются 5 человек. Иногда при сохранении "задумывается". Никаких других эффектов/глюков от использования такой технологии пока не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:55 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Вернусь к вопросу, по которому был создан этот топик. В параметрах базы данных есть пункт "Режим открытия по умолчанию"->"общий доступ" и "монопольный доступ". Возможно ли программно включать и выключать монопольный доступ в процессе работы программы или изменение этого параметра доступно только при перезапуске базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 17:29 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
В факе по сжатию БД есть способ для а200х. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 17:47 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
А зачем на монопольное? В твоем случае ни один пользователь не испортит вставляемую запись по пионерскому принципу-кто первым встал-того и тапки а твой юзер-всегда первый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 18:01 |
|
||
|
Блокировка доступа к базе данных
|
|||
|---|---|---|---|
|
#18+
Vsevolod VА вот и единомышленники Имеется в виду, что выполнение запроса INSERT INTO и блокировка, как было сказано, ВСЕЙ базы - одно и то же? См. высказывание Hummer'a где-то в соседних топиках по поводу вопросов и путей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32414642&tid=1676555]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 341ms |

| 0 / 0 |
