|
2 / 2 / 0
Регистрация: 13.08.2010
Сообщений: 74
|
|
Синхронизация нескольких баз02.12.2012, 18:36. Показов 4365. Ответов 17
Метки нет (Все метки)
Для начала опишу то, что хотел сделать и чего добился:
1. Базой пользуются несколько пользователей, т.е. я каждый день высылаю обновленную базу, в которой пользователи работают. 2. Вечером пользователи высылают мне базу. В базе пользователя, путем запросов выделяю записи, созданные на текущую дату, затем экспортирую в exel(конечно же все одной кнопкой) 3. Теперь импортирую в основную базу(которая находиться у меня) из exel, то, что экспортировал. В итоге у меня актуальная база, т.е. в ней есть все записи, которые были внесены пользователями, которую я высылаю им же на следующий день. Через сервер держать базу не рентабельно, т.к. изменения вносятся чаще всего на буках без подключения к инету. Теперь о проблеме: База не совсем актуальная, а скорее совсем не актуальная . Дело в том, что таким способом я не вижу внесенные изменения в записях, что, как понимаете не есть гуд. По этой причине данный алгоритм синхронизации баз потерпел фиаско. В идеале, конечно было бы доработка алгоритма, потому как много придется менять, но если это не возможно, то хотелось бы узнать новый алгоритм, который бы учитывал и новые записи, и изменения в старых. Заранее благодарен за ответ.
0
|
|
| 02.12.2012, 18:36 | |
|
Ответы с готовыми решениями:
17
Синхронизация баз данных Синхронизация баз данных Анализ нескольких баз одинаковой структуры |
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||
| 02.12.2012, 19:06 | ||
|
Рассматривался вариант с репликами баз данных (у Вас основная). Чем он не устраивает - это же стандартное средство для таких ситуаций?
1
|
||
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
|
| 02.12.2012, 19:10 | |
|
1
|
|
|
2 / 2 / 0
Регистрация: 13.08.2010
Сообщений: 74
|
||
| 02.12.2012, 19:52 [ТС] | ||
|
Про "Репликации" в первый раз слышу, буду узнавать
, всем огромное спасибоДобавлено через 40 минут
0
|
||
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
||
| 02.12.2012, 20:04 | ||
|
1. Насколько помню, в 2007 Офисе появилось специальное средство в меню папок - синхронизацию, попробуйте (на уровне догадки). 2. Преобразуйте, как хочет Добавлено через 3 минуты 3. Возможно, не осилили главу до конца: там есть ещё варианты, на мой взгляд, практичнее и проще с точки зрения уже продвинутого уровня...
0
|
||
|
2 / 2 / 0
Регистрация: 13.08.2010
Сообщений: 74
|
|||
| 02.12.2012, 20:23 [ТС] | |||
|
В том то и дело, что не пойму чего он хочет. У меня итак не 2000 и не 2003. Синхронизацию не могу найти.... В описании работы с репликами написано так "Сервис → Репликация → Создать реплику" в 2007 нет "Сервис" может где в другом месте.. Подскажите, кто знает?
Добавлено через 4 минуты Добавлено через 58 секунд Добавлено через 12 минут В инете нешел только такое решение: для пользователей нужно преобразовать свою базу в 2000(2003) и разослать в таком виде, затем мол она с репликами можно решить вопрос. Вот только всплывает другая проблема. В 2003 некоторые важные составляющие перестают работать. Так что это не есть решение проблемы. Какие еще есть варианты???
0
|
|||
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
||
| 02.12.2012, 20:38 | ||
![]() (Ещё один случай в копилку "чем лучше А2003"...) Добавлено через 4 минуты Плюс к тому, разделять файл на интерфейс (клиент) и таблицы. Файл с таблицами делать в .mdb, который можно синхронизировать
2
|
||
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 02.12.2012, 20:45 | |
|
Непереносимость продукта большой грех. Очень многие, начав с Jet SQL, продолжили работу в серверных БД. А там поля типа Вложения, многозначные или подстановки в таблицах, если и есть, то в совершенно ином виде и напрямую никак не переносятся. И чтобы не обрекать себя на бесполезную, вообщем-то работу по приведению полей к стандартным типам, лучше сразу пользоваться только такими. Тем более, что работы по преобразованию довольно часто велики по объему переделок, в частности многозначные поля требуют введения новых таблиц и сервисов по их обслуживанию.
0
|
|
|
2 / 2 / 0
Регистрация: 13.08.2010
Сообщений: 74
|
||
| 02.12.2012, 20:52 [ТС] | ||
|
Дело в том, что уже много(очень)работы проделано в 2007 и делать снова в 2003 то же самое не просто ломы, а очень ломы, на сколько понимаю решения нет, так что буду искать что-то нетривиальное, по крайней мере постараюсь
![]() Добавлено через 44 секунды
0
|
||
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
|
| 02.12.2012, 20:58 | |
|
mobile,
читал, что в "новых" версиях SQL введен такой многозначный тип. Но не уверен, что будет работать, например, с MS SQL... Но не уверен, так как не пробовал... ??? (ради ликбеза :-) )
0
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||
| 02.12.2012, 21:06 | ||||
|
Добавлено через 3 минуты
1
|
||||
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
||
| 02.12.2012, 21:16 | ||
|
(Имхо, скрытые таблицы индексов ведь прижились без критики?)
0
|
||
|
2 / 2 / 0
Регистрация: 13.08.2010
Сообщений: 74
|
||
| 02.12.2012, 21:38 [ТС] | ||
|
По методу ТРИЗ вышел на разбиение задачи на несколько подзадач, т.е.: если раньше была одна таблица "Звонки", в которой были поля "Цель_звонка" и "Результат_звонка", при внесении изменений в "Результат_звонка", изменения не отслеживались, то при новом раскладе можно разделить "Звонки" на две таблицы "Цель_звонка" и "Результат_звонка", в каждой из которых будет поле "Дата_создания" и отслеживать так... Но что-то мне не очень нравиться такой подход, может кто-нибудь подскажет более правильный алгоритм????
0
|
||
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
|||
| 02.12.2012, 22:05 | |||
|
вы бы скинули посмотреть структуру имеющихся таблиц, лучше скрином схемы данных, для наглядности, или файлом
0
|
|||
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 02.12.2012, 22:17 | |
|
1. Выбрав 2007 Вы сами лишили себя стандартного средства - реплик баз данных.
2. Существует доморощенный способ - каждая обрабатываемая таблица из основной базы сравнивается с соответствующей таблицей из пользовательской базы с использованием трех запросов, определяющих новые записи, удаленные записи, измененные записи. По результатам этих запросов принимается решение о внесении изменений в основную базу. Для двух баз Access нужды применять его не было, но для Access и выгрузки из другой базы он вполне работал. 3. Пользователи, во избежании коллизий (внесения разными пользователями изменений в одну и туже запись), получают для работы не всю базу, а только ту ее часть, которая их касается (если пользователи торговые агенты, например, то они получают только данные, касающиеся их клиентов).
1
|
|
|
2 / 2 / 0
Регистрация: 13.08.2010
Сообщений: 74
|
||
| 02.12.2012, 22:35 [ТС] | ||
|
0
|
||
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||||||||||||||||
| 03.12.2012, 00:33 | ||||||||||||||||
|
Есть Таблица с ключевым полем Запись_Код, который пользователи изменять не могут (тип счетчик). Таблица (в основной базе) сравнивается с ее "копией" Таблица1 в копии пользователя.
Новые определяются запросом
И так для каждой таблицы, которую нужно синхронизировать.
1
|
||||||||||||||||
| 03.12.2012, 00:33 | |
|
Помогаю со студенческими работами здесь
18
Как получить список таблиц по маске из нескольких баз данных? синхронизация баз Синхронизация 2х баз данных помогите! синхронизация баз Синхронизация баз данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|