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

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

Как сделать Data Transformation, чтобы указывать любой сервер?


Страницы:   1 2

Kolan ©   (2007-12-10 15:33:00) 

Здравствуйте, в MS SQL Server'е есть DT Service. И есть консольная программа dtsrun.exe, которая в качестве параметра может принимать имя сервера, имя БД…

При создании самого DTS там в формах выбирается сервер и БД. То есть как бы жестко туда зашиваются.

Вопрос: Как сдалать DTSку, которая бы запускадась с параметрами переданными dtsrun ( dtsrun.exe /S«Server»итд…)?

На такую строку:
«%PROGRAMFILES%\MICROSOFT SQL SERVER\80\TOOLS\BINN\dtsrun.exe» /S%1 /U%2 /P%3 /R%4 /F%~5skor_exp.dts
ругается
DTSRun:  Loading…

Error:  —2147217355 (80041035); Provider Error:  0 (0)
  Error string:  General error —2147217355 (80041035).
  Error source:  Microsoft Data Transformation Services (DTS) Package
  Help file:  sqldts80.hlp
  Help context:  705


Такая работает:

«%PROGRAMFILES%\MICROSOFT SQL SERVER\80\TOOLS\BINN\dtsrun.exe» /U«sa» /P«» /f%~5skor_exp.dts


Kolan   (2007-12-14 08:14:00) [21]

Up


Kolan   (2007-12-12 17:13:00) [22]

> Правильно сделал.

Так, а наоборот не получается.

Все это время я говорил о трансформации из SQL Server'a в BDF(Dbase IV). B там я у источника(SQL Servera) задал не [базу].[таблицу], а запрос — и заработало.

А вот как наоборот. Теперь когда источник это DBF, то у Destination задано [база].[таблица] и как избавится от этой [базы](которая на другом компе называется подругому) непонятно.


DiamondShark   (2007-12-11 16:39:00) [23]


> Я не уверен что правильно сделал.

Правильно сделал.


Kolan   (2007-12-11 14:22:00) [24]

> Значит схемы, всё-таки, не совсем одинаковые.

Одинаковые — у меня база А — бек ап базы Б.


> Может наваять какой-нибудь таск, который бы проверял схему?

Да не умею я. Проверка ненужна схемы точно будут одинаковые.

DiamondShark
А про комментируй:
«Так, вроде если в ДТС в Source использовать не Tabele/View где жестко задаётся таблица с префиксом базой, а Query, то работает.»

Я не уверен что правильно сделал.


DiamondShark   (2007-12-11 13:37:00) [25]


> Правда из 16 2 трансформации ругнулись что нет такой таблицы

Значит схемы, всё-таки, не совсем одинаковые.

Может наваять какой-нибудь таск, который бы проверял схему?


Kolan   (2007-12-11 10:48:00) [26]

Так, вроде если в ДТС в Source использовать не Tabele/View где жестко задаётся таблица с префиксом базой, а Query, то работает.

Правда из 16 2 трансформации ругнулись что нет такой таблицы — странно, но уже лучьше :)


Kolan   (2007-12-11 10:15:00) [27]

Блин так и не получается. У меня БД называется «А» а на компе где сделаи ДТС «Б».

При запуске у меня сбазой А, ругается что invalid object name Б.dbo..

То есть там база не изменилась :( Что не правильно? Где может быть ошибка?


Kolan   (2007-12-11 09:08:00) [28]

> Можно просто импортировать библиотеку типов dtspkg.dll и
> получить в своей программе весь функционал dts…

Да не, и так хорошо, DiamondShark, благодарю. :)


Плохиш   (2007-12-11 00:49:00) [29]

Можно просто импортировать библиотеку типов dtspkg.dll и получить в своей программе весь функционал dts...


Kolan   (2007-12-10 18:13:00) [30]

> Отдельным ключом /A для каждой переменной

Ага, вроде получается, шас попробую…


DiamondShark   (2007-12-10 18:11:00) [31]

Отдельным ключом /A для каждой переменной

dtsrun /S (local) /E /N Package1 /A "Initial Catalog:8=qweqwe" /A "Data Source:8=ururu"

если для батника, то

dtsrun /S (local) /E /N Package1 /A "Initial Catalog:8=%1" /A "Data Source:8=%2"


Kolan   (2007-12-10 17:43:00) [32]

А как праметры передавать?

Одной строкой:
/A«Data Source = %s Initial Catalog=%s»

Или как?


Kolan   (2007-12-10 17:33:00) [33]

Увидел, буду пробовать.


DiamondShark   (2007-12-10 17:18:00) [34]


> Kolan ©   (10.12.07 16:57) [2]
> А ключь R это что? Что такое Repository Data base name?

Это то, где сам пакет находится.


> Есть программа П, которая знает как назавается нужный сервер
> и нужная БД.
>
> Задача запустить ДТС для сервера и БД, ктороые укажет(в
> параметрах ком строки) программа П.

Создаёшь пакет, сохраняешь его где-нибудь. Хочешь, на каком-нибудь сервере, хочешь -- в файл.
В пакете первой задачей делаешь Dynamic Properties Task, в которой расставляешь нужные свойства из глобальных переменных. А глобальные переменные передаются ключом /A


Kolan   (2007-12-10 16:57:00) [35]


> А ты не зашивай жёстко.

А как там в меню выбираешь сервер и БД из списка…


Kolan   (2007-12-10 16:57:00) [36]

> Не может принимать имя БД.

А ключь R это что? Что такое Repository Data base name?

Задача примерно такая: Есть сервера с разными именами, на серверах одинаковые по структуре БД с разными именами.

То есть Сервер: А БД Б. Сервер: В БД: Г.

Есть программа П, которая знает как назавается нужный сервер и нужная БД.

Задача запустить ДТС для сервера и БД, ктороые укажет(в параметрах ком строки) программа П.

Как такое сделать, научи.


DiamondShark   (2007-12-10 16:49:00) [37]


> принимать имя сервера, имя БД…

Не может принимать имя БД.


> То есть как бы жестко туда зашиваются.

А ты не зашивай жёстко. Используй, например, глобальные переменные, которые можно передать в командной строке dtsrun.

Из глобальных переменных можешь установить свойства коннектов в пакете с помощью Dynamic Properties Task


Страницы:   1 2

Наверх

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