Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно осуществить транспортировку данных? [MSSQL]


DBDev ©   (2003-07-10 10:14:00) 

Имеем 2 MSSQL сервера:

Необходимо по кнопке из программы осуществлять однонаправленное обновление данных с полным затиранием всех старых значений для 5 связанных таблиц.

Хотелось бы услышать возможные пути оптимального с Вашей точки зрения решения, кроме вручную удалить все записи и в цикле копировать.


Fiend   (2003-07-10 17:45:00) [1]

xp_cmdshell - расш.хранимая процедура, которая может выполнять команды shell
например exec xp_cmdshell "dir c:" покажет все файлы на диске с:

далее, есть тул dtsrun, который может выполнять пакеты. Параметры передаются с командной строки. Путь к нему объявлен в переменных среды, птому можете смело писать exec xp_cmdshell "dtsrun (параметры)"
Про параметры надо почитать в командной строке


DBDev   (2003-07-10 17:02:00) [2]

2 Fiend:
"Второй вариант сделать DTS пакет. а из программы просто выполнить скрипт, который выполнит пакет. Это немного лучше вариант. т.к. в этом случае будет выполняться Bulk Copy, если вы конечно правильно построите пакет ДТС."

А как из программы выполнить скрипт, выполняющий DTS пакет?


LordOfSilence   (2003-07-10 12:02:00) [3]

Писал, не видев Fiend © (10.07.03 11:55)
В общем, вариаций много :-)


LordOfSilence   (2003-07-10 12:00:00) [4]

Для этого существует Data Transformation Services.
Довольно мощная и удобная штука. Настрой один раз
и гоняй хоть по расписанию.


Fiend   (2003-07-10 11:55:00) [5]

Создаём на одном из серверов Linked Server на второй сервер.
затем пользуемся openquery и ни надо никаких циклов. сервера сами всё сделают. надо скрипт грамотно написать. т.е. удалить в нужной последовательности и залить тоже в нужной.

Второй вариант сделать DTS пакет. а из программы просто выполнить скрипт, который выполнит пакет. Это немного лучше вариант. т.к. в этом случае будет выполняться Bulk Copy, если вы конечно правильно построите пакет ДТС.
Это всё совсем не сложно, надо только открыть БОЛ и почитать про это.


clickmaker   (2003-07-10 11:52:00) [6]

написать хранимую процедуру или просто скриптик + запуск по расписанию или принудительно


DenK_vrtz   (2003-07-10 11:32:00) [7]

А поподробнее постоновку задачи можно?


DBDev   (2003-07-10 11:03:00) [8]

2 DenK_vrtz: А нельзя ли поподробнее?


DenK_vrtz   (2003-07-10 10:21:00) [9]

сделать view и написать триггер


Наверх

Титульная страница Поиск, карта сайта Написать письмо