Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.03;
Скачать: CL | DM;

Вниз

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

 
Мария В.   (2003-03-12 11:09) [0]

Люди, помогите!
Нужно каждый день добавлять данные из таблицы в одной БД в аналогичную таблицу в другой БД. Работаем с InterBase 5.6 через BDE, алиасы у баз естественно разные. Таблицы оч-чень большие. Самый простой способ - открыть запросом исходную таблицу и, двигаясь по ней, insert-ами добавлять записи в таблицу-приемник - работает крайне медленно. Просто клиническая смерть!
Может кто-нибудь знает способ побыстрее - напишите, пожалуйста.
Заранее спасибо.


 
Юрий Жуков ©   (2003-03-12 12:44) [1]

Э-эх
Делаешь скрипт типа
Insert into ....
// повторить не меньше 1000 раз мона и болеее

commit;

Читай доку по работе с IB


 
MsGuns ©   (2003-03-12 13:04) [2]

BatchMove решит ваши проблемы. То же, в принципе, что и Юрий Жуков © (12.03.03 12:44), только не надо страдать, ручками стряпая запросы.


 
Wellslava ©   (2003-03-12 13:18) [3]

напиши другую прогу, и с помощью компонента BatchMove (страница Data Access)передавать данные... он работает пакетно, поэтому намного быстрее запросов.


 
Юрий Жуков ©   (2003-03-12 13:46) [4]

2Wellslava: А что значит работает пакетно? IB, как я понимаю, фиолетово как работает BatchMove вкупе с BDE. Я особо не вкурсе позволяет ли сам IB городить гетерогенные(в смысле между базами) запросы. Это был бы самый быстрый вариант.


 
zacho ©   (2003-03-12 13:49) [5]


> позволяет ли сам IB городить гетерогенные(в смысле между
> базами) запросы

Насколько помню - нет.


 
y-soft ©   (2003-03-12 13:49) [6]

Сам IB гетерогенные запросы не позволяет. Позволяет лишь делать двухфазный коммит


 
Wellslava ©   (2003-03-12 14:47) [7]

Юрий Жуков: Я имел ввиду, что он берет все данные оптом переносит их в другую таблицу, минуя все триггеры и генераторы, поэтому в принципе потом надо обновлять генераторы... По крайнер мере я так делал, и довольно быстро все передавалось... (быстрее запросов на Insert)


 
alexvan ©   (2003-03-12 15:21) [8]

Господа! У меня аналогичная тема. Только поэтому влезаю сюда. Я согласен что BatchMove это удобнее и быстрее как через компонент, так и через Table.BatchMove(). Но у меня прабла в том, что таблицы с другой машины к себе закачиваю без каких либо проблем, а вот для того чтобы их передать обратно-уже проблема. Насколько я помню функция BatchMove возвращает количество записей? А у меня ни фига. Хотя таблы не пустые. И BatchMove.Mode:=batCopy. Подскажите, кто с этим сталкивался.


 
Юрий Жуков ©   (2003-03-12 16:11) [9]

2Wellslava: ошибаешься. BatchMove никак не отключает триггеры и констраинты в IB. Ктстати а ведь отключение триеггров и констраинтов приведет должно действительно привести к ускорению на больших объемах.


 
Мария В.   (2003-03-13 16:53) [10]

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



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
1-6551
Dim!S
2003-03-21 10:53
2003.04.03
Как проиграть avi файл, зашитый в программу


1-6502
DenisLK
2003-03-24 15:54
2003.04.03
qtintf.dll ???


1-6535
_BasiL_
2003-03-19 16:46
2003.04.03
CreateProcess и NT


1-6422
Uran
2003-03-20 09:59
2003.04.03
Как изменить тип линии в TChart?


3-6354
anton2v
2003-03-14 08:37
2003.04.03
Не на всех машинах работает ADO ???