Как да накарате Data Transformation да сочи към всеки сървър

Здравейте, има DT услуга в MS SQL Server. Има и конзолна програма dtsrun.exe, която може да вземе името на сървъра, името на базата данни & # 133 като параметър

При създаването на самия DTS сървърът и базата данни се избират във формите. Тоест, сякаш твърдо зашит там.

Въпрос: Как да изпратя DTSku, който да работи с параметрите, предадени на dtsrun ( dtsrun.exe /S"Server" etc&#133)?

Към този ред: "%PROGRAMFILES%\MICROSOFT SQL SERVER\80\TOOLS\BINN\dtsrun.exe" /S%1 /U%2 /P%3 /R%4 /F%

5skor_exp.dts псува DTSRun: Зареждане&#133

Грешка: 2147217355 (80041035); Грешка на доставчика: 0 (0) Низ за грешка: Обща грешка 2147217355 (80041035). Източник на грешка: Microsoft Data Transformation Services (DTS) Package Помощен файл: sqldts80.hlp Помощен контекст: 705

"%PROGRAMFILES%\MICROSOFT SQL SERVER\80\TOOLS\BINN\dtsrun.exe" /U"sa" /P"" /f%

> приемете име на сървър, име на база данни...Не може да приеме име на база данни.

> Тоест, сякаш твърдо зашит там.Не го зашивайте силно. Използвайте, например, глобални променливи, които могат да бъдат предадени на командния ред dtsrun.

От глобалните променливи можете да зададете свойствата на връзките в пакета, като използвате задачата за динамични свойства

> Не може да се приеме име на база данни.Какво е клавишът R? Какво е името на базата данни на хранилището?

Задачата е нещо подобно: Има сървъри с различни имена, сървърите имат една и съща структура на база данни с различни имена.

Това е сървър: A DB B. Сървър: C DB: D.

Има програма P, която знае името на желания сървър и желаната база данни.

Задачата е да стартирате DTS за сървъра и базата данни, които ще бъдат посочени (в параметрите на com линията) от програмата P.

Научете как да направите това.

> И не го кодирайте твърдо.Как избирате сървър и база данни от списъка в менюто&#133

> Има програма P, която знае името на желания сървър > и необходимата база данни. > > Задачата е да стартирате DTS за сървъра и базата данни, което ще посочи (в > параметрите на com реда) програмата P.Създайте пакет, запазете го някъде. Ако искате на някой сървър, ако искате - във файл. В пакета първата задача е да направите Dynamic Properties Task, в която подреждате необходимите свойства от глобални променливи. И глобалните променливи се предават с ключа /A

Виждам, ще опитам.

Как да предам параметри?

В един ред: /A"Източник на данни = %s Първоначален каталог=%s"

Отделен ключ /A за всяка променлива

dtsrun /S (локален) /E /N Package1 /A "Първоначален каталог:8=qweqwe" /A "Източник на данни:8=ururu"

ако за пакетен файл, тогава

dtsrun /S (локален) /E /N Package1 /A "Първоначален каталог:8=%1" /A "Източник на данни:8=%2"

> Отделен ключ /A за всяка променлива

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

> Можете просто да импортирате библиотеката с типове dtspkg.dll и > вземете в програмата си цялата функционалност на dts&#133Да, не, и много добре, DiamondShark, благодаря ти. :)

Блейн не работи. Имам база данни, наречена "A" и на моя компютър къде е DTS "B".

Когато започна с база A, тя кълне това невалидно име на обект B.dbo. .

Тоест базата данни не се е променила там :( Какво не е наред? Къде може да има грешка?

Така че изглежда, че ако в DTS в Source не използвате Tabele / View, където таблицата с базовия префикс е твърдо зададена, а Query, тогава работи.

Вярно, от 16 2 трансформации се заклеха, че няма такава таблица странно, но вече по-добре :)

> Вярно, от 16 2 трансформации се заклеха, че няма такава таблицаЗначи схемите все пак не са съвсем еднакви.

Мога ли да създам някаква задача, която да проверява веригата?

> Така че схемите, в края на краищата, не са съвсем еднакви.Те са същите, имам база A резервна база B.

> Мога ли да създам някаква задача, която да проверява схемата?Да, не знам как. Проверката не е необходима, схемите определено ще бъдат същите.

Не съм сигурен, че го направих правилно.

> Не съм сигурен, че постъпих правилно.Постъпих правилно.

> Постъпил си правилно.Да, но обратното не работи.

През цялото това време говоря за трансформацията от SQL Server "a към BDF (Dbase IV). B там, в източника (SQL Servera), не съм задал [база]. [таблица], но заявката и тя работи.

А тук е обратното. Сега, когато източникът е DBF, тогава Дестинацията е зададена на [база].[таблица] и не е ясно как да се отървем от тази [база] (която се нарича по различен начин на друг компютър).

> тогава Дестинацията е зададена на [база].[таблица] и как да се отървете от > от тази [база]По същия начин, използвайки задачата за динамични свойства.

Transform Data Task има свойство DestinationObjectName

> DestinationObjectNameДа, видях го. Но какво да напиша там? не разбрах

При разтоварването зададох база данни за всички задачи, така да се каже, и използвах заявка.

И какво да напиша DestinationObjectName не е ясно.

Настройката, към която се предава базата данни, се нарича SQLCatalog. Таблицата се нарича Table.

Какво трябва да бъде написано в DestinationObjectName?

Apnu ka, бих искал да го разбера до края, иначе е низИмето на DB остана&#133

Свойството DestinationObjectName указва името на местоназначение на данни.

Обикновено DestinationObjectName е име на таблица на база данни или изглед или име на работен лист на Microsoft® Excel.

Колко време отнема въвеждането на думата "DestinationObjectName" в BOL индекса?

> Трябваше ли да чакате три дни?Не, ние направихме инструкция базите да се наричат ​​еднакви :) Това беше еднократно решение, но може да се наложи някога, така че искам да го разбера.

> Свойството DestinationObjectName &#133

Ами ако имах:

Тогава просто напускам [dbo].table и ето? &#133 Ще проверя утре&#133

> Не, направиха инструкция базите да се наричат ​​еднакви > :)Също вариант;) Административни мерки като начин за запазване на кода.

> , като начин за запазване на кода.Не става въпрос за кода, просто не се получи за моята приятелка Лана, благодаря, ще опитам.

Нищо не се случи :(. Нищо не е ясно&#133

Как да го направя стъпка по стъпка:

2. Отивам в настройките. http://www.ksoftware.ru/images/other/TransformationQuestion/2.png

Не е веднага ясно какво да се направи, Добавяне или Редактиране. Правя Добавяне.

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. Нищо не се е променило&#133

Не е особено ясно защо настройките на целия пакет са вътре във всяка настройка, това съсипва моя mosk.

Хм, преди 5 години, използвайки [9], ми отне само два работни дни, за да внедря нещо подобно, като това време включваше и дрямка, сърфиране в интернет, хранене, разходка и други подобни.

> Искате ли да вмъкна вашия текст вместо „обикновения“?Да, разбирате какво имам предвид&#133

Не разбирам защо страдането отнема толкова време, ако ms предостави инструмент под формата на интерфейс. 1 е достатъчен, за да го използвате. Импортиране на библиотека от типове 2. Направете импортирането веднъж, запазете скрипта 3. Преведете скрипт от vb на delphi 4. В процеса на превод разберете какво и защо 5. Променете всички параметри по-късно, ако е необходимо

> 3. Преведете скрипта от vb на delphiДори delphi не е необходим тук.

Съвсем vbscript или jscript е достатъчно. Критерият „чрез средства, изготвени от MS“ е изпълнен ;)

Интерфейсът е луд ;) Ако съжалявате за ресурса на мишката, можете да напишете ActiveX Script Task:

Функция Main() Dim oPackage Set oPackage = DTSGlobalVariables.Parent oPackage.Tasks("DTSTask_DTSDataPumpTask_1").CustomTask.DestinationObjectName = "ZZZ0" oPackage.Tasks("DTSTask_DTSDataPumpTask_2").CustomTask.De stinationObjectName = "qqq0" oPackage.Tasks("DTSTask_DTSDataPumpTask_3").CustomTask.DestinationObjectName = "jhgjhg" и т.н. Основна = DTSTaskExecResult_Success Крайна функция

Или още по-добре нещо общо като това:

Функция Main() Dim oPackage Dim oTask STOP Set oPackage = DTSGlobalVariables.Parent За всяка oTask в oPackage.Tasks Ако oTask.CustomTask Тогава oTask.CustomTask.DestinationObjectName = UnqualifyName(oTask.CustomTask.DestinationObjectName) End If Next

Основна = DTSTaskExecResult_Success Крайна функция

Функция UnqualifyMe (SNAME) DIM ELTS Elts = Split (Sname, ".") Изберете Case Ubound (Elts) Case 0, 1 Unqualifyname = Sname Case 2 If Elts (1) = "" then unqualifyname = Elts (2) else unqualifyname = Elts (1) & amp ; "." & elts(2) End If Case Else err.Raise vbObjectError+1, "UnqualifyName", "Invalid object name" End Select End Function

> Всичко е направено както трябва. Сега същото за всички задачи.Добре.