Страница 2 из 3

Добавлено: 11 дек 2008, 18:40
m0p3e
Если речь только о МЦ то такой экспорт/импорт пишется и отлаживается за неделю. И работать будет надежнее корпы :)

Добавлено: 11 дек 2008, 19:58
sim
Да, и возможно даже для этого подойдет входящий в Прогресс модуль Обмен бизнес-документами. Импорт-экспорт каталога МЦ там есть, и фильтры выставить можно.

Добавлено: 12 дек 2008, 09:43
hope
Вы говорите об обмене данными через файлы?

Хочется без всяких файлов - сразу положить во все базы новые МЦ.

Добавлено: 12 дек 2008, 11:18
m0p3e
Можно написать демона на Дельфях, который будет напрямую читать из БД каталог МЦ и проверять полноту его в остальных БД. Тогда без файлов, но через стороннюю программу.

Добавлено: 12 дек 2008, 11:48
hope
Понятно! Спасибо за идеи!

А через триггеры реально сделать?

Добавлено: 12 дек 2008, 12:23
m0p3e
А базы все на MSSQL? На разных серверах?

Добавлено: 12 дек 2008, 14:53
hope
Базы все на MS SQL. Скорее всего на одном сервере будут. 7.12 планируется.

Добавлено: 12 дек 2008, 15:10
m0p3e
Тогда легко триггерами.
Делается процедура синхронизации конкретной МЦ и вызывается в триггере t$katmc_U. Можно ее вызывать и в t$katmc_I, но скорее всего бессмысленно. Видимо придется ее же вызывать и из триггреров t$katotped и т.д. Вторая процедура будет идти по t$katmc и для каждой вызывать первую. Полная синхронизация.
С удалением (t$katmc_D) посложнее будет. Процедура будет несколько другая, но несложная.

Добавлено: 15 дек 2008, 08:46
hope
А может просто в триггрерах сразу прописать изменение/добавление/удаление в других базах?

Добавлено: 15 дек 2008, 09:59
PViP
hope писал(а):А может просто в триггрерах сразу прописать изменение/добавление/удаление в других базах?
нет, это ошибочное решение! Пишите отдельную процедуру и ее вызывайте в тригере одной строчкой! Иначе будете при малейшем изменении процедуры обмена переписывать все 3х3=9 тригеров, оно вам надо? :grin:

Добавлено: 15 дек 2008, 17:04
hope
Понятно! Спасибо ВСЕМ!

Нашли уже готовую программулину, в которой настраиваются правила синхронизации и она вроде как все без проблем синхронизирует - сейчас тестируем - может такой вариант нас устроит.

Добавлено: 18 дек 2008, 15:34
lStep
Если можно выделить головную базу (A) для изменения каталогов, а в других каталоги руками не менять, то просто :
в A:
Select * from katmc to dbf d:\katmc;

в остальных:
Import katmc from DBF d:\katmc fsn;
// из DBF будут добавлены только новые


Import katmc from DBF d:\katmc fsn R;
// перебьёт совпадающие на то, что в DBF

Добавлено: 22 янв 2009, 12:41
hope
Сторонними программами не получилось сделлать - они не понимают тип COMP.

Все-таки придется писать обмен.

lStep! Как в в коде интерфейса запустить указанные вами запросы (выполнить запрос)?

Добавлено: 22 янв 2009, 12:51
Алексей
тип comp надо приводить к строке. в ASDK где-то читал, там показано как сделать.

Добавлено: 22 янв 2009, 13:21
Den
hope писал(а): lStep! Как в в коде интерфейса запустить указанные вами запросы (выполнить запрос)?
Посмотрите любой конвертер.