Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: 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 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.059 c
15-1140349376
Jim27
2006-02-19 14:42
2006.03.12
Виснет компьютер


2-1140629769
Golikov
2006-02-22 20:36
2006.03.12
QuickRep может кто нибуть обьяснить ?????


2-1140689729
-=Dark=-
2006-02-23 13:15
2006.03.12
Ошибка при запуске Delphi


15-1139834037
X9
2006-02-13 15:33
2006.03.12
Помогите с алгеброй


15-1139983253
Ega23
2006-02-15 09:00
2006.03.12
С Днём рождения! 15 февраля