|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
Добрый день, сообщество. Хотелось бы услышать варианты реализации пакета обновления для БД на ACCESS 2007. Опишу ситуацию: Есть разделенная БД у которой есть несколько независимых пользователей работающих в Runtime. Часть accdb, с данными, у каждого своя (структура одинаковая, данные разные). Клиентскую часть при доработках я подменяю на новую, а вот как организовать удобное обновление в части с данными, хотелось бы услышать от тех кто это реализовал уже. Есть предположение, что нужно создать отдельную БД для обновления, и зашивать скрипт на кнопку "Обновить", в котором будет кучка DDL и DML SQL-скриптов. Естественно с предварительным выбором файла с данными. Еще есть желание проверять совместимость версий клиентской и серверной части, ну это просто. Может есть еще подводные камни о которых я не подумал, или удачные решения? Прошу поделиться опытом. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2016, 22:11 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2016, 22:25 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
час58...Я реализовал вот так:... На мой взгляд, вот это - ИСТИННЫЙ ФАНАТ Аксика, своЁ видение проявил +++ час58 - так держать!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2016, 22:41 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
Хмм... Интересный подход, спасибо. Но как-то это смахивает на лечение глаз через задний проход. Нет, функция полезная, но для переноса данных, не для апдейта. То есть если у меня несколько десятков таблиц, с кучей данных и огромным количеством связей по генерируемым счетчиками id, а мне нужно в табличку 1 поле добавить, то придется все это добро переносить в новую базу, вместо 1 строки ALTER TABLE... Как-то избыточно, не считаете? И я все же сомневаюсь в сохранении ссылочной целостности. Есть еще предложения? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 00:25 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
Ну если обновления не очень частые и полностью контролируется вами, то. 1) Добавляем таблицу (или пишем в реестр) для хранения текущей сборки например 1.0 2) В самом клиенте проверяем какая версия, если 1.0, а у нас 1.1, то выполняем код обновления данных и версию новую пишем. Базу правлю DAO: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 00:59 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
Спасибо. Не плохой вариант. Скромно, аккуратно. Подскажите есть разница(плюсы, минусы) между DAO и SQL (Alter table.../ Create table...)? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 01:58 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
GrayShadowХотелось бы услышать варианты реализации пакета обновления для БД на ACCESS 2007. Обновление модулей для пользователей ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 11:12 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
GrayShadow, Я правлю базу(таблицы), которая у меня имеется- как хочу. Отсылаю пользователю два файла (Интерфейс и новый набор таблиц). Он запускает интерфейс жмёт на кнопочку и указывает путь к старой своей базе. И работает дальше уже с новой версией программы. В программе нет проверок версий, наличия полей и прочего. Нет кода, который нужно удалять в новых версиях. Функция написана один раз и на всегда. Всё просто. ------------------------------------------------------ ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 11:43 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
час58Функция написана один раз и на всегда. Всё просто. При одном условии - что счетчики в классификаторах (главных таблицах) искусственные иначе, как говорил Панург ПанургБыл кефир в бутылках, стал носками в бочках? Нормально! Зато весело! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 13:23 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
vmag, естественно, имелось ввиду - искусственные ключи, искусственные счетчики/ключи, иначе... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 14:01 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
Мое мнение: обновлять вэкэнд через работу на уровне свойств таблиц через VBA - неэффективный и тупиковый путь. Все неплохо, пока база маленькая. А что вы будете делать когда там будет хотя бы полсотни таблиц и нужно будет поменять структуру? Я делаю так: Схему базы делаю в CASE типа PowerDesigner или ERWin, они все могут генерировать SQL скрипты для создания/изменения базы данных, а также изменять схему, считывая структуру существующей базы. Очень легко можно изменить тип базы на любой другой сервер и миграция таблиц превращается легкую задачу. Также есть возможность автоматической проверки структуры базы. Далее полученный скрипт обрабатывается в форме, которая выполняет команды SQL, созданные в CASE или рукамим. Сейчас попробую приложить эту форму, не знаю пока, удастся ли перевести ее в mdb или утрамбовать accdb в 150К ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2016, 08:20 |
|
Организация пакета обновления базы данных
|
|||
---|---|---|---|
#18+
Вот, собственно, форма с требуемой функциональностью, выдрал из большого приложения, поэтому есть избыточная функциональность, упрощать некогда, возможно что-то не будет работать. В заголовке модуля краткое описание. Тестовый пример также есть. Скопируйте все файлы в c:\tst\, запустите форму, выберите SQL файл и запустите апдейт. Он создаст в бэкэнде новую таблицу и вставит в нее несколько значений. Обратите внимание, что файл со скриптом должен иметь строку-заголовок, ее можно использовать для контроля версий, этот функционал сейчас закомментирован. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2016, 10:40 |
|
|
start [/forum/topic.php?fid=45&msg=39332040&tid=1613047]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 131ms |
0 / 0 |