powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / DTS. Список столбцов таблицы.
7 сообщений из 7, страница 1 из 1
DTS. Список столбцов таблицы.
    #32015965
AlexR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла проблема.
В ActiveScript динамически меняю свойство DataPump Tast SourceObjectName на новое имя таблицы.
Прблема в том что новая табица имеет другую структуру. Поэтому если не изменить Transformation и не заполнить DestinationColumns то работать не будет.
Как получить список столбцов для новой таблицы.
SQL Server 7.0
...
Рейтинг: 0 / 0
DTS. Список столбцов таблицы.
    #32015983
Фотография Dmitri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не проще разбить одну Task на несколько, с фильтрацией записей?
получить список столбцов можно из запроса: SELECT name FROM syscolumns
where id in (select id from sysobjects where name =/имя таблицы/)
или посредством DMO из SQLServer.Databases('database name').Tables('table name').COLUMNS
...
Рейтинг: 0 / 0
DTS. Список столбцов таблицы.
    #32015985
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать создать вообще новый Transformation Task - возможно тогда произойдет автоматический маппинг входных/выходных столбцов (ведь такое же происходит в ручном режиме)
...
Рейтинг: 0 / 0
DTS. Список столбцов таблицы.
    #32015997
AlexR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Dmitri Нет не проще. Задача одна и таже, перенос данных из таблицы в файл, а таблиц в базе ~70.

2Glory Создавать автоматически это вариантов, сейчас буду пробовать.
Вот я и искал как получить список столбцов из свойств задачи, ведь в ручном режиме когда ставишь другую таблицу в SourceObjectName список SourceColumns ставиться автоматом. А DestinationColumnDefinitions заполняешь сам.
В BOL нашел. The DTSDataPumpColumns collection contains groups of columns that provide information to an ActiveX script as a DTSSource or DTSDestination collection. Но как получит ссылку на DTSDataPumpColumns не знаю. И подозреваю что это не совсем то что мне надо.
...
Рейтинг: 0 / 0
DTS. Список столбцов таблицы.
    #32016000
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю что меня дернуло использовать одну только строчку из примера в BOL, но у меня (правда SQL2000) все заработало


Dim dtsPackage
Set dtsPackage = DTSGlobalVariables.Parent

Dim dtsDataPumpTask, dtsTransformation, dtsCustomTask
'Я для быстроты проверки сразу подставляю имя Task, а не ищу его по description
Set dtsDataPumpTask = dtsPackage.Tasks("DTSTask_DTSDataPumpTask_1")
Set dtsCustomTask = dtsDataPumpTask.CustomTask
msgbox dtsCustomTask.Properties("SourceObjectName").Value

Dim dtsSourceColumn, dtsDestinationColumn
'Список всех Transformation
For Each Transformation In dtsCustomTask.Transformations
Set dtsTransformation = Transformation
msgbox dtsTransformation.Name
' Список всех SourceColumn
For Each SourceColumn In dtsTransformation.SourceColumns
Set dtsSourceColumn = SourceColumn
msgbox dtsSourceColumn.Name
Next

' Список всех DestinationColumn
For Each DestinationColumn In dtsTransformation.DestinationColumns
Set dtsDestinationColumn = DestinationColumn
msgbox dtsDestinationColumn.Name
Next
Next


Поможет это вам ?
...
Рейтинг: 0 / 0
DTS. Список столбцов таблицы.
    #32016006
AlexR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через Transformation не получиться. Дело в том что новая таблица имеет другое кол-во столбцов (большее). Тогда получаеться если в предыдущей таблице было 3 столбца а в новой 5 то автоматом получиться 3 обекта Transformation. Соответсвенно через Transformation я смогу получить только 3 столбца новой таблицы. (Так происходит и в ручном режиме).

Еще не попробовал создавать задачу динамически, но думаю так может получиться.
Но почему нельзя получить список не понимаю. Ведь он есть.
...
Рейтинг: 0 / 0
DTS. Список столбцов таблицы.
    #32016013
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вариант - не создавать Transformation для каждого столбца, а создать один ActiveX Script Transformation, в которм обрабатывать все столбцы разом. Тогда для новой таблицы вообще нет надобности обрабатывать каждый столбец - достаточно заменить текст ActiveX Script, а список столбцов для таблицы источника получать используя стандартные способы.

PS
Извиняюсь, если говорю про что-то, чего нет в SQL Server 7.0
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / DTS. Список столбцов таблицы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]