|
|
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Привет Всем!!! Все собирался задать один вопрос - вот собрался.... Можно ли: вызвать из одной Access базы другую в ТОМ ЖЕ окне?!?!? Поясню, зачем мне это надо... Клиент Access, сервер - MSSQL7.0 Создал описание обновлений клиентской части на сервере... хотел использовать для упрощения скидки новых версий.... Задумка такая - пользователь входит, набирает логин, пароль - я проверяю, нужна ли ему новая версия - если нужна, копирую файл с определенного места в сети и запускаю его на выполнение..... Так вот - как запустить снова Access - нет проблем... Проблема в том, что не хочу, чтобы пользователь второй раз вводил пароль - поэтому хочу все в одном окне.... а Access в одном окне сохраняет парли... по крайней мере до 2000 версии.... Кто сталкивался - помогите советом, как можно сделать, если можно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 15:46 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
В серверной части сделай таблицу юзверей с булевским полем (выдавать/не выдавать запрос пароля). И никаких геморров... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 16:30 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Так мне на сервер надо залогиниться!!!!!!!!! Я не хочу писать свою серверную безовасность или пускать всех под dbo!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 16:48 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Я конечно не мастак, но у себя я сделал так: макрос Autoexec запускает 2 функции находящиеся в отдельных модулях по очереди. Первая осуществляет коннект к серверу (здесь наверно нужно форму с паролями), там же на сервере (в базе акцесс лежат все объекты для загрузки) в таблице храняться наименование объектов для обновления и дата создания нового объекта и номер последней версии. Если версия приложения в таблице клиента не совпадает с серверной, то из таблицы по дате меньшей даты версии приложения клиента получаю рекордсет с наименованиями и типами объектов для загрузки и загружаю их. После этого вторая функция запускает скрытую форму (у меня она вообщем для специфических функций), а потом центральную управляющую форму. По таймеру скрытая форма ищет в аналогичной таблице (для системных объектов: макрос Autoexec, Autokeys, первый загрузочный модуль) ищет обновления и загружает их. Потом она устанавливает дату версии приложения = текущей дате, обновляет номер версии приложения. Подводные камни: 1. Не забывать правильно устанавливать даты. Сделал обновления - измени в таблице дату (формат: полный формат даты) и номер версии. 2. Если до таймера выгрузить приложение, то будет качать повторно. Поэтому я убрал из ctrl-alt-delete и закрыл окно базы, меню, кнопку закрытия окна акцесса, ctr-f4, alt-f4, f11. 3. Первая функция должна быть полностью изолирована от остального проекта VB базы данных, иначе ее невозможно будет обновить Вот вроде бы и вся задумка. Получается что обновление происходит до открытия рабочей части приложения и загружать по нескольку раз не надо. А у тебя как я понял заменяеться полностью приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 19:18 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Я забыл про сервер :). Это все для обновления клиентской части в акцессе, но у меня весь клиент работает на рекордсетах а их я получаю уже с паролем и пользователем из приложения клиента (у него своя таблица с паролями, ее он заполняет сам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 19:25 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
2 MVN Интересный подход - мне понравилась задумка.... Только: 1. Сколько идет по времени такое выборочное обновление??! Надо же удалить объект, засосать его с сети и так по-объектно.... 2. Уже устал бороться, но Access хуже некуда (мать-мать его) работает с изменением (удалением, добавлением) объектов - в основном форм, отчетов и пр.... - удалили объект - посмотрел - размер базы прежний?!? Удалили еще пяток форм и отчетов - смотришь - размер вырос!!!!!!!!!! Красота!!!! У меня стандартно база за неделю распухает метров до 40!! И сжатию не поддается!!! (только до ~25), а если я создаю новую и импортирую все в нее - 12 метров?!?? Загадки природы!!! Даешь больше дисков - больших и очень больших и памяти под 512!!! (Да, во избежании кривотолков и комментариев злопыхателей - локальных таблиц у меня нет!!!!!!) 2.1. Я и засасываю приложение целиком, чтобы скомпоновать его, зажать и выложить клиенту (особенно при обновлении по радиоканалу....) 3. Было время - пытался создать описание объектов клиента на сервере, чтобы динамически их создавать.... С ходу - пара дней работы положительных результатов не получил.... Не самая простая, но и не очень сложная форма - средняя... - выгружаю описание на сервер - секунд за 20, зато создание по описанию - несколько минут.... Может, конечно, и не очень хитро писал, но стандартно вроде как - CreateControl и вперед..... Поэтому пока и решил, что оптимальнее будет копировать целиком..... Но рад буду изменить мнение при наличии положительного опыта!!! В первую очередь меня, коненчо, волнует время выполнения обновления клиента!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 19:44 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Modules: Opening another database in the same instance http://www.mvps.org/access/modules/mdl0005.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 22:15 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Да, полезная ссылка.... Большое спасибо!! Обязательно затестирую.... Настоятельно рекомендую всем посмотреть - может кому пригодиться (вышел через предыдущую, но там рассадник...) http://www.trigeminal.com/lang/1033/utility.asp?ItemID=-1#4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2003, 23:29 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Согласен, копировать файл быстрее чем загружать пообъектно. По времени не проверял но дольше чем копировать файл - это однозначно. 1. В принципе закачка у меня идет терпимо, не могу сказать что форма закачивается по 2 минуты. Здесь загвоздка в структуре формы: при закачке акцесс (я так понял) проверяет все соединения указанные в конструкторе формы. Поэтому формы с напрямую присоединенными таблицами и запросами закачиваються долго, я думаю акцесс проверяет все соединения. У меня нет таких форм. RowSource я присваиваю после открытия формы. Особенно долго на таких формах (с присоединенными таблицами) идет трансформация на настройку под текущее разрешение экрана - вот это действительно мрак. 2. Мои клиенты уже работают несколько месяцев. Только что посмотрел размер файла на компьютере клиента = 1 500 Kb. У меня стоит галочка "сжимать при закрытии". А версия клиента уже 170. Как видишь никакого роста размера. 3. Насчет создавать объекты у клиента - здесь я пас. Но думаю это вариант. Только не пойму почему так долго идет создание и как работает весь процесс. По моему закачал с сервера String-переменную с описанием и вперед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2003, 08:02 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
А если не секрет?!?!? Сколько объектов в базе и каких?!?!? У меня: Table (Linked) ~ 200 Query ~ 50 Forms ~ 200 Reports ~ 50 Macros = 1 Modules = 13 (процедур по 10 в каждом).... Да, Access 2000 (9.0.4402 SR1)... Может были приличные сервис паки??!? в которых она лучше работает с размером файла?!?!? А создается долго в силу создания описания, видимо.... Если прописывать все свойства контрола - как-то их многовато, да и не очень быстро он это делает..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2003, 13:46 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Нет, у меня раз в 10 меньше и того и того. Здесь конечно нужно как нибудь извратиться и что-нибудь придумать. Качать по-моему это долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2003, 15:06 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
Для MixaCh и MVN. Разрешите вклиниться дилетанту. У меня стоит похожая задача об обновлении клиентских приложений. Только у меня не SQL Server, а базы mdb, но это не важно. Как я решаю такую задачу. На сервере всегда лежит обновленная клиентская часть. При запуске, после ввода пароля пользователя, клиентска часть прилинковывается к ней и запрашивает номер версии. Если номер не совпадает, то запускается внешняя программа копирования клиентской части, а Акцесс закрывается. Она копиует новую версию, удаляет старую, и запускает новую на выполнение. Чтобы избежать повторного ввода пороля, я ввел в клиентскую часть маленькую табличку. Счетчик запусков. Первоначально она пустая. После копирования программа копирования вносит в эту таблицу идентификатор пользователя, который вызвал обновление клиентской части и дату/время запуска. При запуске клиентской части, она прверяет, сколько записей в этой таблице, и если там только одна запись, то запрос пароля не происходит, а клиенская часть открывается под идентификатором пользователя, вызвавшего обновление и с его привелегиями. Вести такую табличку удобно. Можно набрать статистику: кто, когда и сколько работал на этой машине с этим приложением. Обновление отдельных таблиц и форм у меня не получается. Может вы поделитесь кодом. А то на словах я вроде всё понимаю, а как начинаю программировать, то что-то не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 11:12 |
|
||
|
Можно ли?!?!? №1
|
|||
|---|---|---|---|
|
#18+
вариант Joss наиболее предпочтителен, поскольку позволяет оперировать с mde файлами. если добавить к этому еще и разархивирование (т.е. хранить на сервере клиентскую часть в архивном виде) будет еще лучше. но для ADP/ADE где хранить таблички? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:11 |
|
||
|
|

start [/forum/topic.php?fid=45&gotonew=1&tid=1680324]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 404ms |

| 0 / 0 |
