Вниз
Скачать: CL | DM;

Нужна идея. Передача даных с одной БД в другую (FireBird)   Найти похожие ветки 

← →
_RusLAN ©   (2006-01-20 14:42) [0]

Здравствуйте!
Помогите советом.
Нужно организовать передачу данных из одной БД в другую через файл.
Точнее, есть база (Firebird), из нее надо выбрать некоторую информацию (информация из разных таблиц и между ними есть связи),
сохранить ее в файл
файл перенести на другой компьютер и из него информацию перенести в другую базу (тоже Firebird).
Каким способом лучше все это делать?
Спасибо.


← →
Sergey13 ©   (2006-01-20 14:52) [1]

А инфу надо в чистые таблицы закачивать или пополнять имеющиеся?


← →
_RusLAN ©   (2006-01-20 15:15) [2]

Sergey13 ©   (20.01.06 14:52) [1]
А инфу надо в чистые таблицы закачивать или пополнять имеющиеся?

В чистые.
Новая база будет содержать только ту информация которая выберется из основной.


← →
Digitman ©   (2006-01-20 15:22) [3]

метаструктура обеих баз одинакова ?


← →
Sergey13 ©   (2006-01-20 15:27) [4]

2[2] _RusLAN ©   (20.01.06 15:15)
Тогда все просто и разнообразно.
1.Самое простое - создай копию БД через бэкап, удали все ненужное и отдай готовую базу.
2.Выведи нужные таблицы в новые внешние таблицы и отдай их. Там обратная процедура.
3.Вывести нужное в отдельный(е) файл(ы) в виде скрипта на вставку. У потребителя - накатить скрипт.
4.Можно сохранить например через CDS (прямо со связями), а у потребителя перегнать в БД.

Может и еще как можно.


← →
DSKalugin ©   (2006-01-20 15:32) [5]

выгрузить результат запроса в файл TFIBQuery.BatchOutputRawFile
сархивировать, если файл большой
перенести на другую машину
распаковать, если он был запакован арзхиватором
загрузить данный в запрос TFIBQuery.BatchInputRawFile
и использовать эту информацию по своему усмотрению
хош по таблицам расталкивай, хош распечатай и сожги...

и так по каждой таблице

аналогично смотри
TFIBOutputDelimitedFile


← →
msguns ©   (2006-01-20 15:33) [6]

>Sergey13 ©   (20.01.06 15:27) [4]
>Может и еще как можно.

Datapump ?


← →
Sergey13 ©   (2006-01-20 15:36) [7]

2[6] msguns ©   (20.01.06 15:33)
Помпой вроде можно, если обе БД доступны в онлайне. Нет?


← →
DSKalugin ©   (2006-01-20 15:39) [8]

если обе в онлайне, то достаточно одной базы данных, вторая тут не нужна
все подключения перевести на единую базу


← →
msguns ©   (2006-01-20 15:53) [9]

>Sergey13 ©   (20.01.06 15:36) [7]
>Помпой вроде можно, если обе БД доступны в онлайне. Нет?

Я имел в виду репликацию по схеме:
Комп 1:
Старая БД -(помпа)-> БД к репликации (любой формат) -> rar
Комп 2:
rar -> БД к репликации (любой формат) -(помпа)-> Новая БД

Правда, для этой схемы нужно, чтобы на обеих тачках было помпа ;)


← →
Sergey13 ©   (2006-01-20 15:59) [10]

2[9] msguns ©   (20.01.06 15:53)
Тогда да, наверное.


← →
Desdechado ©   (2006-01-20 16:02) [11]

самое простое - выгрузить в скрипт, загрузить из скрипта
только триггеры на автоинкремент (и прочие подобные) отключить при загрузке, а потом вручную увеличить генераторы


← →
_RusLAN ©   (2006-01-20 16:13) [12]

Всем спасибо!

Уточню еще задачу, а то предложеных вариантов много - не знаю какой выбрать.

Основная база будет содержать много таблиц, информации в  которых будет накапливатся годами.
Информация для этой базы собирается с разных объектов в разных городах.

Когда пользователь едет на объект то берет с собой (в свое локальной базе) информацию только из нескольких таблиц. Их можно разбить на два типа:
 1. таблицы-справочники которые должны содержать вс ю информацию из основной базы (несколько тис. записей).
 2. таблицы которые должны содержать только последние записи из основной базы.

Пользователь на обьекте добавляет записи в таблицы тип.2. Где каждая запись ссылается на предыдущую а также на справочники, между которыми также есть связи.
Также пользователь может добавлять записи и в справочники.

Потом из базы пользователя надо перенести все новые записи в основную базу.

Я думаю делать так:
Создать чистую базу из скрипта.
Записи из таблиц тип.2 передать тоже через скрипт.
А вот справочники через скрипт наверно не получится  - много записей. Думаю подойдет вариант со внешними таблицами, буду разбиратьсячто это такое.

Такой вариант подходящий?


← →
msguns ©   (2006-01-20 16:25) [13]

Почитай о репликациях


← →
UnDISCOvery   (2006-01-20 17:00) [14]

В ADO есть такая штука - Briefcase ... как раз для переноса данных коммивояжерам :)


← →
Desdechado ©   (2006-01-20 18:24) [15]

много записей для скрипта не проблема
при "гонянии" данных туда-сюда только репликация



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.029 c
2-1141022416
КаПиБаРа
2006-02-27 09:40
2006.03.12
Просьба скачать страницу


2-1140864784
ALFER
2006-02-25 13:53
2006.03.12
Работа с *.ini-файлом


2-1140626927
Дева
2006-02-22 19:48
2006.03.12
перехват нажатия клавиши в консольном приложении


15-1140185712
Piter
2006-02-17 17:15
2006.03.12
Сколько энергии потребляет GPRS?


2-1140597616
BigLoy
2006-02-22 11:40
2006.03.12
TMemoryStream




   Наверх