Слияние баз данных ОРИОН c 2х объектов

FORUM_NAME: АРМ Орион
Описание: Программное обеспечение АРМ «Орион» предназначено для организации автоматизированных рабочих мест различного назначения при эксплуатации ИСО «Орион».
Справочная информация, руководства для АРМ Орион
Модератор: Модераторы
varenick
Автор темы
varenick
Автор темы
Репутация: 0
Сообщения: 6
Зарегистрирован: 01.12.2015
С нами: 1 год
Профессия: инженер

Непрочитанное сообщение #1 varenick » 01.12.2015, 09:49

Есть 2 объекта на которых установлено ПО ОРИОН, нужно объединить данные по персоналу и пропускам (ключам). Не подскажите как это проще сделать, что бы в ручную не перебивать сотрудников и там и там по 300+ человек. Есть оба архива alkad.g .

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #2 google » 01.12.2015, 10:03

Можно сделать слияние двух таблиц в SQL

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #3 google » 01.12.2015, 10:03

Версии Ориона одинаковые?

varenick
Автор темы
varenick
Автор темы
Репутация: 0
Сообщения: 6
Зарегистрирован: 01.12.2015
С нами: 1 год
Профессия: инженер

Непрочитанное сообщение #4 varenick » 01.12.2015, 10:09

Да, одинаковые

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #5 google » 01.12.2015, 10:20

Если не ошибаюсь, запрос будет выглядеть примерно вот так (orion1 и orion2 - это соответственно ваши БД с первого и второго объектов, данным запросом происходит копирование из БД orion2 в БД orion1):

копирование идентификаторов (ключей, паролей и т. д.)
Спойлер
INSERT INTO orion1.pMark SELECT * FROM orion2.pMark

копирование персонала
Спойлер
INSERT INTO orion1.pList SELECT * FROM orion2.pList

Когда будете химичать с базами, обязательно сделайте резервные копии!

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #6 google » 01.12.2015, 10:41

Нет, запрос немного не такой, как я написал. В этих таблицах имеются ключевые поля, тупо скопировать все поля из одной Таблицы в другую не получится. Сейчас попробую составить такой запрос.

varenick
Автор темы
varenick
Автор темы
Репутация: 0
Сообщения: 6
Зарегистрирован: 01.12.2015
С нами: 1 год
Профессия: инженер

Непрочитанное сообщение #7 varenick » 01.12.2015, 10:56

Насколько я понял это запросы в SQL?, если учесть что бд в формате .g , что я впервые вижу, присутствуют одинаковые имена но с разными ключами и существуют разграничения в правах доступа, то объединение через sql будет чуть некорректно, и потом съест ли новую бд его сам орион?

Sia-Ori
Активный участник
Активный участник
Sia-Ori
Активный участник
Активный участник
Возраст: 46
Репутация: 2
Сообщения: 763
Зарегистрирован: 04.02.2012
С нами: 4 года 10 месяцев
Профессия: инженер СКУД
Откуда: Ростов на Дону

Непрочитанное сообщение #8 Sia-Ori » 01.12.2015, 11:04

Это запросы в MS SQL
google,
перед копированием очищайте принимающие таблицы.
Если беспокоитесь за ключи, я просто не помню, там ссылочная целостность поддерживается или нет, то:
1. Очистить pmark приёмника
2. Очистить pList приёмника
3. Скопировать сотрудников
4. Скопировать карты
Это если хотите именно полностью переместить.
помимо бэкапов при работе с такими табличками частенько в базе создаю копии самих таблиц, исходных, рабочих и т.п. pMark1, pMark_old.

varenick
Автор темы
varenick
Автор темы
Репутация: 0
Сообщения: 6
Зарегистрирован: 01.12.2015
С нами: 1 год
Профессия: инженер

Непрочитанное сообщение #9 varenick » 01.12.2015, 11:16

Спасибо большое, но помимо совпадающих сотрудников ест ьтак же уникальные со своими правами доступа по объекту, если я очищу pList приемника не удалятся ли у меня уникальные?

Sia-Ori
Активный участник
Активный участник
Sia-Ori
Активный участник
Активный участник
Возраст: 46
Репутация: 2
Сообщения: 763
Зарегистрирован: 04.02.2012
С нами: 4 года 10 месяцев
Профессия: инженер СКУД
Откуда: Ростов на Дону

Непрочитанное сообщение #10 Sia-Ori » 01.12.2015, 12:15

Конечно удалятся!
Вообще задача такого вот слияния, что что-то надо сохранить, дубликаты какие-то убить, какие-то оставить - вещь очень интимная.
Можно так
1. Найти максимальное значение ключа в пользователях приёмника, запомнить его. Можно, для простоты, округлить вверх, до тысячи ли до 10 тысяч, как нравится.
2. Скопировать пользователей из источника, ключ увеличить на константу из первого пункта. запросец будет чуть сложнее, чем insert into .. select *, надо будет поля поштучно все перебрать.
3. Теперь максимум с таблицей карт
4. И тут вставляем карты, добавляя константу из пункта 3. Уровень доступа только ставить желательно какой-то из существующих.

varenick
Автор темы
varenick
Автор темы
Репутация: 0
Сообщения: 6
Зарегистрирован: 01.12.2015
С нами: 1 год
Профессия: инженер

Непрочитанное сообщение #11 varenick » 01.12.2015, 12:32

эмм есть 1 таблица там есть все имена и приписанные к ним ключи уникальны и 2я таблица, где есть уникальные имена и ключи, но так же есть и повторяющиеся с первой имена , но ключи , присвоенные этим именам, разные. Мне нужно объединить их так чтобы уникальные имена остались а ключи со 2ой базы присваивались к совпадающим именам на 1ой, при этом права доступа у персонала в случае уникальных имен брались из базы откуда взято это имя, а у уникальных берется со второй базы. как то так (

Sia-Ori
Активный участник
Активный участник
Sia-Ori
Активный участник
Активный участник
Возраст: 46
Репутация: 2
Сообщения: 763
Зарегистрирован: 04.02.2012
С нами: 4 года 10 месяцев
Профессия: инженер СКУД
Откуда: Ростов на Дону

Непрочитанное сообщение #12 Sia-Ori » 01.12.2015, 12:40

Это слишком сложно.
Права из второй базы потеряются напрочь.
Первая сохранится полностью.
Кто есть и в первой и во второй базе - станут дублями. С ними разобратсья можно потом, из АБД, и несложно. вызываешь ключ на редактирование и из двух фамилий владельца выбираешь верхнюю. А нижнюю потом, на вкладке Сотрудники - удалить.
Можно средствами SQL сделать то, о чём вы просите, но возни много, проще просто перенести людей и ключи, а остальное доделать в АБД.

varenick
Автор темы
varenick
Автор темы
Репутация: 0
Сообщения: 6
Зарегистрирован: 01.12.2015
С нами: 1 год
Профессия: инженер

Непрочитанное сообщение #13 varenick » 01.12.2015, 13:51

спасибо за помощь, будем пытаться

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #14 google » 01.12.2015, 13:55

Мне кажется в вашем случае реально проще руками все перебить, за день-два можно управиться одному. Вот если бы у вас было по несколько тысяч сотрудников, тогда нужно было бы думать про автоматизацию.

Sia-Ori
Активный участник
Активный участник
Sia-Ori
Активный участник
Активный участник
Возраст: 46
Репутация: 2
Сообщения: 763
Зарегистрирован: 04.02.2012
С нами: 4 года 10 месяцев
Профессия: инженер СКУД
Откуда: Ростов на Дону

Непрочитанное сообщение #15 Sia-Ori » 01.12.2015, 14:41

Соединить сотрудников и ключи из двух баз - это пол часа-час, быстрее, чем перебивать.

google M
Активный участник
Активный участник
Аватара
google M
Активный участник
Активный участник
Возраст: 31
Репутация: 27
Сообщения: 1178
Зарегистрирован: 11.06.2015
С нами: 1 год 5 месяцев
Профессия: Инженер
Откуда: Sml - Msk
ICQ

Непрочитанное сообщение #16 google » 01.12.2015, 15:51

Я имел ввиду с теми условиями, что запросил ТС дополнительно.


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «АРМ Орион»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 3 гостя

forum-bolid.ru : Отказ от ответственности