Создание пакета служб SSIS с использованием EzApi - PullRequest
2 голосов
/ 12 января 2011

Я использую EzApi для создания пакета служб SSIS. Однако я не могу создать пакет с несколькими источниками и одним адресатом. Например, два источника OLEDB и один пункт назначения OLEDB. Что именно я хочу знать, это как добавить преобразование слияния с использованием кода на C #. Пожалуйста, помогите

Ответы [ 2 ]

2 голосов
/ 27 апреля 2012

В EzApi есть компонент с именем EzMerge Если вам нужно создать собственный поток данных - вы можете использовать базовый класс с именем EzDataFlowPackage:

class MyPackage: EzDataFlowPackage
{
        public EzOleDbSource src1;
        public EzOleDbSource src2;
        public EzMerge merge;
        public EzOleDbDest dest;
        public EzOleDbConnectionManager srcConnMgr1;
        public EzOleDbConnectionManager srcConnMgr2;
        public EzOleDbConnectionManager destConnMgr;


        public EzMyPackage() : base() 
        {
            srcConnMgr1 = new EzOleDbConnectionManager(this);
            srcConnMgr2 = new EzOleDbConnectionManager(this);
            src1 = new EzOleDbSource(DataFlow);
            src2 = new EzOleDbSource(DataFlow);
            dest mew EzOleDbDest(DataFlow);
            src1.Connection = srcConnMgr1;
            src2.Connection = srcConnMgr2;
            dest.Connection = destConnMgr;
            merge = new EzMerge(DataFlow);
            src1.AttachTo(merge);
            src2.AttachTo(merge);
            merge.AttachTo(dest);
        }

        public EzMyPackage(Package p) : base(p) { }

        public static implicit operator EzMyPackage(Package p) { return new EzMyPackage(p); }
}

Я простонабрал этот код в - так что он может содержать ошибки.После всего этого ваш макет пакета готов.И вы можете просто установить свойства компонента.

0 голосов
/ 12 января 2011

Я не использовал EzApi, однако в BIDS (Visual Studio) вам нужно иметь два источника данных, одно место назначения данных и компонент «слияния» для его подключения:

Примерно так:

alt text

РЕДАКТИРОВАТЬ

Что касается упаковки является прогаматическим.Проверьте следующую ссылку:

http://thinkerkk.blogspot.com/2007/08/programmatically-creating-dataflow-with.html

Найдите код после комментария //create the Merge Transformation

//create the Merge Transformation
IDTSComponentMetaData90 merge = dataflow.ComponentMetaDataCollection.New();
merge.ComponentClassID = "DTSTransform.MergeJoin";
CManagedComponentWrapper mergeDesigntime = merge.Instantiate();
mergeDesigntime.ProvideComponentProperties();
merge.Name = "Merge Source1 and source2";
Console.WriteLine("merge created ");
merge.InputCollection[0].ExternalMetadataColumnCollection.IsUsed = false;
merge.InputCollection[0].HasSideEffects = false;
merge.InputCollection[1].ExternalMetadataColumnCollection.IsUsed = false;
merge.InputCollection[1].HasSideEffects = false;

//create path from source1 to merge
/*More code - see article*/

//create path from source2 to merge
/*More code - see article*/

Следующие ссылки также могут быть полезны для создания SSISпакеты программно:

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

http://blogs.msdn.com/b/mattm/archive/2008/12/30/samples-for-creating-ssis-packages-programmatically.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...