2013-11-12 2 views
0

я два вопроса о наборе результатов, порожденного выполнения SQL задачи -Понимание «Полный Result Set» из SSIS

1) Что такое класс объекта, где хранится набор результатов? Это набор записей ADODB? 2) Каким бы объектом он ни был, как он перебирает этот объект. Я хочу просто перебрать его в виде сетки в виде сетки, как и в студии управления SQL-сервером. Я хочу сделать это БЕЗ вставки объекта DataTable или что-то в этом роде. Это будет пустой тратой памяти и времени.

Может ли кто-нибудь показать мне, как это сделать?

+0

печатать его на сетке - форма - где? HTML? PDF? CSV-файл? Это для целей отладки? –

ответ

0

Альтернативой может быть использование соединения ADO.NET вместо OLEDB. Если вы используете соединение ADO.NET, вы получите объект ADO.NET DataSet. DataSet - это коллекция DataTable.

Некоторые ссылки на DataSet учебники -

http://www.dotnetperls.com/dataset

Tut Скотта Митчелла -

http://msdn.microsoft.com/en-us/library/aa581776.aspx

2

1) Результирующий набор технически хранится в объекте OLEDB Rowset, который может быть помещен в объект ADORecordConstruction и преобразован в ADO RecordSet. SSIS делает это неявно всякий раз, когда вы действительно обращаетесь к данным объекта.

Без использования сценариев единственный способ увидеть эти данные в рамках выполнения SSIS - использовать контейнер Foreach Loop.

  1. Установите перечислитель перекрестного цикла на Foreach ADO Enumerator.
  2. Назначьте переменную для каждого столбца в вашем результирующем наборе.
  3. Используйте эти переменные в цикле, чтобы отобразить их в вашем журнале выполнения с помощью обработчиков событий.

Это, как говорится, если вы действительно хотите, чтобы просмотреть данные объекта, я высоко рекомендуется создать поток данных, преобразование объекта в Source Script, и присоединение просмотра данных к нему, чтобы увидеть данные в сетка.

И, наконец, я рекомендую, если вы просто пытаетесь отладить и просмотреть набор данных, возвращаемый вашей задачей SQL, задача сценария может выполнить запрос и быстро вывести его результаты (например) локального файла.