|
автор: SergioVB (14.11.2006 в 09:13) |
|
| Можно ли во время работы пользователей заменить файл рабочих групп (mdw)? Файл такой-же, но допустим, с добавленным пользователем. | |
|
| |
|
|
|
| что мешает взять и попробовать? | |
|
| |
|
автор: SergioVB (14.11.2006 в 09:35) |
|
| Много пользователей, и важный проект. Вдруг чего. Я подозреваю что заменить как-бы можно, но если в этот момент происходит вход юзера, по идее просто не пустит. Короче всё догадки. Знать бы наверняка. | |
|
| |
|
|
|
| а у себя на машине попробовать
создать файл MDW
запустить с ним ACCESS
заменить файл MDW другим
А зачем эта подмена вообще нужна? | |
|
| |
|
автор: SergioVB (14.11.2006 в 09:58) |
|
| Физически файл меняется без проблем, так можно и саму базу заменить :) Я как то не смог дождаться выхода юзеров и заменил. Пришлось базу восстанавливать. А замена вот зачем:
Компания крупная, свои требования безопасности, а именно: разработчик не должен иметь доступа в среду где работают пользователи (дабы чего-то там не испортить), мне необходимо добавить пользователя - я даю запрос на перенос файла рабочих групп в доступную мне среду, добавляю и по запросу файл тащится обратно (уже не мной). Вот здесь и подходим к первоначальному вопросу. | |
|
| |
|
|
|
| экзотика...
лучше конечно спросить того кто точно знает, а мне кажется что проблем быть не должно...
Может для таких случаем написать форму добавления пользователей и дать ее тому кто имеет права... | |
|
| |
|
автор: SergioVB (14.11.2006 в 10:35) |
|
| Да экзотика. Форма тоже вариант. Но так можно и без работы остаться :( | |
|
| |
|
|
|
| экзотика - я не к тому плохо, а к тому что не стандартное решение...
а плохо или хорошо сказать не готов... что-то с этом конечно есть, но.. в общем не знаю | |
|
| |
|
|
|
| А что мешает подключиться к данному mdw из-под другой базы и делать необходимые изменения.
Я пользую такой вариант:
создал VBS скрипт в котором прописан какой файл базы и какой файл рабочих групп запускать. При некритических изменениях базы (подправить дизайн и т.д.) выкладываю новые файлы с другими именами и правлю скрипт. Таким образом ранее вошедшие пользователи работаю в старой версии, а новые в новой базе. | |
|
| |
|
автор: SergioVB (14.11.2006 в 11:16) |
|
| Схема такая: Есть папка А, я не имею к неё доступа, работают только юзера,в ней лежат три файла MDW, MDB c формами отчетами и т.д. и MDB с таблицами (пользовательские данные).
Есть папка В: имею полный доступ только я, те-же файлы.
Задача №1:Добавить пользователя в базу который работает в А.
Реализация: Копируется админом MDW из А в В, я захожу в MDB добавляю юзера, админ копирует MDW из В в А.
Всё скопируется, но не будет ли проблем?
Задача №2: Изменить интерфейс. Копировать уже надо интерфейсный MDB :( | |
|
| |
|
|
|
| ну по идее интерфейсная часть должна быть у каждого пользователя на компе, тогда формы не будут по сети гоняться, тогда и подмену делать проще.
а иначе придется ждать когда все из интерфейсной базы выйдут, иначе никак не подменишь.
либо подмену нужно делать скриптом с правами того у кого есть доступ к обеим папкам в то время когда заведомо никто не работает.
т.е. идея такова
VBS скрипт (или .BAT) запускается по рассписанию сервером в то время когда никто не работает (или если сервер выключается при старте системы), запускается с павами того кто имеет доступ и к папке А и к папке B. Проверяет наличие новой версии интерфейса (и MDW) в папке B и копирует их в папку А, предварительно скопировав старые версии в папку С (к которой вообще ни у кого кроме админа прав нет)
Такой скрипт пишется за 5 минут | |
|
| |
|
автор: SergioVB (14.11.2006 в 12:16) |
|
| Роль этого VBS скрипта у на выполняет тетя :) | |
|
| |
|
|
|
| а если сохранять из БД - из OLE поля таблицы | |
|
| |
|
|
|
| написать скрип, тетю в запас, ЗП разделить между сервером (на новые мозги) и программистом (на пиво) | |
|
| |
|
|
|
| По проблемам при копировании ничего сказать не могу, да и практические испытания тоже не помогут (если только под большой нагрузкой)
Лично у меня бывали ситуации когда при копировании MDB иногда ломалась база (и никакими средствами востановить не получалось), а чаше все происходило нормально (даже если с ней работали люди)
Т.К. приложение запускается через Citrix, то сделал скрипт
SelectVersion.vbs
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
dbPath = "путь в корневой каталог"
dbPathWorkGroup = dbPath & "knowledge.mdw"
dbPathBaseOLD = dbPath & "Знания.mdb"
dbPathBaseNEW = dbPath & "RO_(3-0)_1.mdb"
dbPathAccess = "D:\Program Files\Microsoft Office\Office11\MSACCESS.EXE"
bntNum = WshShell.Popup ("Запустить новую версию программы ?"_
& Chr(10) & Chr(13) & Chr(10) & Chr(13) _
& Chr(10) & Chr(13) & Chr(10) & Chr(13) _
& Chr(10) & Chr(13) & Chr(10) & Chr(13) _
& "______________________________________________________ " _
& Chr(10) & Chr(13) _
& "При ответе 'ДА' или при отсутствии ответа в течение 15 секунд будет " _
& "запущена новая версия программы." , 15 ,"Выберите версию программы", _
vbDefaultButton1 + vbQuestion + vbYesNo)
select case bntNum
'нажата кнопка НЕТ
case 7
dbPathBase = dbPathBaseOLD
case Else
dbPathBase = dbPathBaseNEW
end select
If dbPathBase <> "" Then
WshShell.Run """" & dbPathAccess & """" & " " & """" & dbPathBase & """" & " /WrkGrp " & """" & dbPathWorkGroup & """ /User " & Ucase(WSHNetwork.UserName) & " /pwd "
End If
WScript.Quit
|
соответственно при обновлениях по необходимости меняю переменные dbPathWorkGroup, dbPathBaseNEW в соответствии с новыми именами файлов (да и версионность таким образом неплохо отслеживать)
ЗЫ. Не иначе в банке работаешь, обычно там такие процедуры.
ЗЫ. Да и процедура добавления нового юзера не дела разработчика, а отдела сопровождения (вот и сделай приблуду для них ) | |
|
| |
|
автор: SergioVB (14.11.2006 в 12:13) |
|
| Спасибо, но помоему не юзер должен выбирать с какой версией ему работать. | |
|
| |
|
|
|
| Да нет здесь имеется просто два разных интерфейса к базе, вот пользователь и выбирает с каким работать
а так выложил файл NewVersion.mdb
dbPathBaseNEW = dbPath & "NewVersion.mdb" | |
|
| |
|
|
|
| >А зачем эта подмена вообще нужна?
хм... что-то в этом есть | |
|
| |