Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server для профессионалов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

Лабораторная работа 2.5 Применение ActiveX Script Task для реализации цикла

ActiveX Script Task для организации цикла в пакете Data Transformation Services (DTS) SQL Server 2000, свойство ExecutionStatus

Задание:

создайте пакет DTS, который бы выполнял в базе данных Northwind на вашем локальном сервере команду

INSERT [Northwind].[dbo].[Bulk_Customers]([CustomerID], [CompanyName], [Heavy_Buyer])
VALUES('_LAB_', '_TestCompanyName', 'N')

1000 раз и сохраните этот пакет на локальном сервере под именем DTS_Loop.

Рекомендация:

для удобства проверки предварительно произведите очистку таблицы Bulk_Customers командой

DELETE FROM [Northwind].[dbo].[Bulk_Customers]

Решение:

1) создайте в DTS Designer новый пакет DTS и сохраните его под именем DTS_Loop с остальными параметрами по умолчанию.

2) добавьте в пакет новое соединение Microsoft OLE DB Provider for SQL Server. В свойствах этого соединения выберите свой локальный сервер и на нем - базу данных Northwind.

3) добавьте в пакет Execute SQL Task и в поле SQL Statement впишите:

INSERT [Northwind].[dbo].[Bulk_Customers]([CustomerID], [CompanyName], [Heavy_Buyer])
VALUES('_LAB_', '_TestCompanyName', 'N')

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

4) в меню Package выберите Properties, перейдите на вкладку Global Variables и создайте новую переменную с именем Counter, типом Int и значением по умолчанию 1.

5) добавьте в пакет ActiveX Script Task, удалите весь код, сгенерированный в этом задании по умолчанию и добавьте следующий код:

Function Main()
Dim oPkg
If DTSGlobalVariables("LoopCounter").Value < (1000-1) Then 
    Set oPkg = DTSGlobalVariables.Parent
    oPkg.Steps("DTSStep_DTSExecuteSQLTask_1").ExecutionStatus _
 = DTSStepExecStat_Waiting
    DTSGlobalVariables("LoopCounter").Value  =  _ DTSGlobalVariables("LoopCounter").Value + 1
    Main = DTSTaskExecResult_Success
Else
     Main = DTSTaskExecResult_Success
End If
Set oPkg = Nothing
End Function

Закройте окно свойств ActiveX Script Task.

6) добавьте Step типа On Success при помощи меню Workflow, чтобы после успешного выполнения Execute SQL Task начиналось выполнение ActiveX Script Task.

7) сохраните пакет с сохранением внесенных изменений. Затем из Query Analyzer выполните команду

DELETE FROM [Northwind].[dbo].[Bulk_Customers]

Затем запустите созданный вами пакет DTS_Loop на выполнение, и из Query Analyzer выполните команду

SELECT Count(*) FROM [Northwind].[dbo].[Bulk_Customers]

чтобы убедиться, что в таблицу было добавлено 1000 записей.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru