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


DiamondShark   (2007-12-18 17:41:00) [1]

Удачи в боях!
:)


Kolan   (2007-12-18 17:23:00) [2]

> DiamondShark

Круть — рабоатет :) Благодарю. :)


Kolan   (2007-12-18 15:52:00) [3]

> Всё правильно сделано. Теперь тоже самое для всех тасков.

Ок.


DiamondShark   (2007-12-18 15:48:00) [4]


> 3. Перевести скрипт из vb в delphi

Тут даже дельфи не нужен.

Вполне vbscript или jscript хватит. Критерий "подготовленными фирмой MS средствами" соблюдён ;)


> Kolan ©   (18.12.07 10:09) [25]

Всё правильно сделано. Теперь тоже самое для всех тасков.

Интрефейс-таки крышесносный ;)
Если жалко ресурса мышки, можно написать ActiveX Script Task:

Function Main()
 Dim oPackage
 Set oPackage = DTSGlobalVariables.Parent
 oPackage.Tasks("DTSTask_DTSDataPumpTask_1").CustomTask.DestinationObjectName = "ZZZ0"
 oPackage.Tasks("DTSTask_DTSDataPumpTask_2").CustomTask.DestinationObjectName = "qqq0"
 oPackage.Tasks("DTSTask_DTSDataPumpTask_3").CustomTask.DestinationObjectName = "jhgjhg"
 и т.д.
 Main = DTSTaskExecResult_Success
End Function

а ещё лучше, что-нибудь универсальное, вроде такого:

Function Main()
 Dim oPackage
 Dim oTask
 STOP
 Set oPackage = DTSGlobalVariables.Parent
 For Each oTask in oPackage.Tasks
   If oTask.CustomTaskId = "DTSDataPumpTask" Then
     oTask.CustomTask.DestinationObjectName = UnqualifyName(oTask.CustomTask.DestinationObjectName)
   End If
 Next
 
 Main = DTSTaskExecResult_Success
End Function

Function UnqualifyName(sName)
 Dim elts
 elts = Split(sName, ".")
 Select Case UBound(elts)
   Case 0, 1
     UnqualifyName = sName
   Case 2
     If elts(1) = "" Then
       UnqualifyName = elts(2)
     Else
       UnqualifyName = elts(1) & "." & elts(2)
     End If
   Case Else
     err.Raise vbObjectError+1, "UnqualifyName", "Invalid object name"
 End Select
End Function


Kolan   (2007-12-18 15:10:00) [5]

> [32] Плохиш ©   (18.12.07 13:45)
> Я не понимаю, зачем столько времени мучиться, если мс предоставила
> инструмент в виде интерфейса. Для его использования достаточно
> 1. Импортировать библиотеку типов
> 2. Сделать один раз свой импорт, сохранить скрипт
> 3. Перевести скрипт из vb в delphi
> 4. В процессе перевода разобраться что и для чего
> 5. Изменять все параметры в последствии так как требуется

А вместо 5 пунктов я шочу научится сделать 1 — настройку нужной бд и все.


Плохиш   (2007-12-18 13:45:00) [6]

Я не понимаю, зачем столько времени мучиться, если мс предоставила инструмент в виде интерфейса. Для его использования достаточно
1. Импортировать библиотеку типов
2. Сделать один раз свой импорт, сохранить скрипт
3. Перевести скрипт из vb в delphi
4. В процессе перевода разобраться что и для чего
5. Изменять все параметры в последствии так как требуется


Kolan   (2007-12-18 13:23:00) [7]

> Хочешь, чтобы я вставил вместо «штатным» твой текст?

Угу, ну ты же понял ведь о чем я…


Плохиш   (2007-12-18 13:16:00) [8]


> Kolan ©   (18.12.07 13:11) [29]

Хочешь, чтобы я вставил вместо "штатным" твой текст?


Kolan   (2007-12-18 13:11:00) [9]

> [28] Плохиш ©   (18.12.07 12:22)
>
> > Kolan ©   (18.12.07 11:12) [27]
>
> Хм, с каких пор использование предоставленного интерфейса
> является нештатным средством?

Ну готовыми, подготовленными фирмой MS средствами.


Плохиш   (2007-12-18 12:22:00) [10]


> Kolan ©   (18.12.07 11:12) [27]

Хм, с каких пор использование предоставленного интерфейса является нештатным средством?


Kolan   (2007-12-18 11:12:00) [11]

> [26] Плохиш ©   (18.12.07 11:03)
> Хм, 5ь лет назад, используя [9], мне понадобилось всего
> два рабочих дня на реализацию подобного, в это время входило
> так же подремать, полазить в инете, поесть, погулять и подобное…

Я имею ввиду это варик, но хотелось бы со штатными сре-вами разобраться…


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

Хм, 5ь лет назад, используя [9], мне понадобилось всего два рабочих дня на реализацию подобного, в это время входило так же подремать, полазить в инете, поесть, погулять и подобное...


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

Ничего не получилось :(. Не понятно ниче…

Как делаю по шагам:

1.
Открывваю пакет:
http://www.ksoftware.ru/images/other/TransformationQuestion/1.png

2. Захожу в настройки.
http://www.ksoftware.ru/images/other/TransformationQuestion/2.png

Тут же непонятно что делать, Add или Edit. Делаю Add.

3. Открывается окно со всеми настройками пакета, почему они оказались внутри созданой настройки непонятно.
http://www.ksoftware.ru/images/other/TransformationQuestion/3.png

4. выбираю DestinationObjectName
http://www.ksoftware.ru/images/other/TransformationQuestion/4.png

Опять непонятно че делать.

5.
Выбираю константу указываю имя таблицы.
http://www.ksoftware.ru/images/other/TransformationQuestion/5.png

6. Жму ок, закрывается, открываю сново опять тоже что и  на шаге 3.
Ничего не изменилось…

Особенно не понятно, почему настройки всего пакета внутри каждой настройки — это разрушает мой моск.


Kolan   (2007-12-17 16:04:00) [14]

> , как способ экономии кода.

Не в коде же дело, просто подругому не получилось, лана, блаагодарю — буду пробовать.


DiamondShark   (2007-12-17 15:56:00) [15]


> Нет, сделали инструкцию чтобы базы назывались одинаково
> :)

Тоже вариант;) Административные меры, как способ экономии кода.


> и се?

Угу.


Kolan   (2007-12-17 14:59:00) [16]

> Это надо было трое суток ждать?

Нет, сделали инструкцию чтобы базы назывались одинаково :)
Это было одноразовое решение, но возможно понадобится еще когда-то, поэтому хочу разобраться.


> The DestinationObjectName property …


А тоесть если у меня было:

[база].[dbo].таблица

То я просто оставляю [dbo].таблицаи се? … Завтра проверю…


DiamondShark   (2007-12-17 14:52:00) [17]


> Kolan ©   (17.12.07 14:41) [20]
> Апну ка, хотелось бы разобраться до конца, а то шас завязка
> на имя БД осталась…

Это надо было трое суток ждать?

The DestinationObjectName property specifies the name of a data destination.

Typically, a DestinationObjectName is a database table or view name or a Microsoft® Excel worksheet name.


Сколько времени надо на то, чтобы в индексе БОЛ набрать слово "DestinationObjectName"?


Kolan   (2007-12-17 14:41:00) [18]

Апну ка, хотелось бы разобраться до конца, а то шас завязка на имя БД осталась…


Kolan   (2007-12-14 16:28:00) [19]

> DestinationObjectName

Да я его видел. Но что туда писать? Не понял.

При выгрузке я для всех заданий как бы выходит назначил БД, и использовал запрос.

А что писать DestinationObjectName — непонятно.

Настройка в которую передается БД называется SQLCatalog.
Таблица называется Table.

Что надо написать в DestinationObjectName?


DiamondShark   (2007-12-14 11:46:00) [20]


> то у Destination задано [база].[таблица] и как избавится
> от этой [базы]

Так точно также, при помощи Dynamic Properties Task.

У Transform Data Task есть свойство DestinationObjectName


Страницы:   1 2

Наверх

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