public SSISFlatFileDestination(FlatFileDestination fdst, MainPipe pipe, IDTSComponentMetaData100 src, int outputID, ConnectionManager cm) : base(pipe, "Flat File Destination", outputID) { cm.Name = String.Format(CultureInfo.InvariantCulture, "FlatFile Destination Connection Manager {0}", outputID); //Create a new FlatFileDestination component IDTSComponentMetaData100 comp = this.MetadataCollection; CManagedComponentWrapper dcomp = comp.Instantiate(); foreach (KeyValuePair <string, object> prop in fdst.CustomProperties.CustomPropertyCollection.InnerArrayList) { dcomp.SetComponentProperty(prop.Key, prop.Value); } /*Specify the connection manager for Src.The Connections class is a collection of the connection managers that have been added to that package and are available for use at run time*/ if (comp.RuntimeConnectionCollection.Count > 0) { comp.RuntimeConnectionCollection[0].ConnectionManagerID = cm.ID; comp.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.GetExtendedInterface(cm); } this.Reinitialize(dcomp); //Create datatype converter if needed Dictionary <string, int> converted = new Dictionary <string, int>(); IDTSVirtualInput100 vInput = src.InputCollection[0].GetVirtualInput(); if (this.needDataTypeChange(vInput, comp.InputCollection[0])) { //create the destination column collection Dictionary <string, MyColumn> exColumns = new Dictionary <string, MyColumn>(); foreach (IDTSExternalMetadataColumn100 exColumn in comp.InputCollection[0].ExternalMetadataColumnCollection) { MyColumn col = new MyColumn(); col.Name = exColumn.Name; col.DataType = exColumn.DataType; col.Length = exColumn.Length; col.Precision = exColumn.Precision; col.Scale = exColumn.Scale; col.CodePage = exColumn.CodePage; exColumns.Add(exColumn.Name, col); } SSISDataConverter ssisdc = new SSISDataConverter(pipe, src, outputID, exColumns); src = ssisdc.MetadataCollection; converted = ssisdc.ConvertedColumns; outputID = 0; } this.ConnectComponents(src, outputID); this.MatchInputColumns(converted, false); }
public SSISSharePointDestination(SharePointDestination spdst, MainPipe pipe, IDTSComponentMetaData100 src, int outputID) : base(pipe, "SharePoint List Destination", outputID, "Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListDestination, SharePointListAdapters, Version=1.2016.0.0, Culture=neutral, PublicKeyToken=f4b3011e1ece9d47") { //Create a new SharePointDestination component IDTSComponentMetaData100 comp = this.MetadataCollection; CManagedComponentWrapper dcomp = comp.Instantiate(); foreach (KeyValuePair <string, object> prop in spdst.CustomProperties.CustomPropertyCollection.InnerArrayList) { dcomp.SetComponentProperty(prop.Key, prop.Value); } this.Reinitialize(dcomp); //Create datatype converter if needed Dictionary <string, int> converted = new Dictionary <string, int>(); IDTSVirtualInput100 vInput = src.InputCollection[0].GetVirtualInput(); if (this.needDataTypeChange(vInput, comp.InputCollection[0])) { //create the destination column collection Dictionary <string, MyColumn> exColumns = new Dictionary <string, MyColumn>(); foreach (IDTSExternalMetadataColumn100 exColumn in comp.InputCollection[0].ExternalMetadataColumnCollection) { MyColumn col = new MyColumn(); col.Name = exColumn.Name; col.DataType = exColumn.DataType; col.Length = exColumn.Length; col.Precision = exColumn.Precision; col.Scale = exColumn.Scale; col.CodePage = exColumn.CodePage; exColumns.Add(exColumn.Name, col); } SSISDataConverter ssisdc = new SSISDataConverter(pipe, src, outputID, exColumns); src = ssisdc.MetadataCollection; converted = ssisdc.ConvertedColumns; outputID = 0; } this.ConnectComponents(src, outputID); this.MatchInputColumns(converted, false); }
private Dictionary <string, MyColumn> getColumnCollectionFromPipe(IDTSComponentMetaData100 comp) { IDTSVirtualInput100 vinput = comp.InputCollection[0].GetVirtualInput(); Dictionary <string, MyColumn> colCollection = null; if (vinput.VirtualInputColumnCollection.Count > 0) { //define input column colCollection = new Dictionary <string, MyColumn>(); foreach (IDTSVirtualInputColumn100 vCol in vinput.VirtualInputColumnCollection) { MyColumn col = new MyColumn(); col.Name = vCol.Name; col.DataType = vCol.DataType; col.Length = vCol.Length; col.Precision = vCol.Precision; col.Scale = vCol.Scale; colCollection.Add(col.Name, col); } } return(colCollection); }
private bool CreateColumnCollection() { foreach (DataColumn column in this.dsvtable.Columns) { MyColumn myCol = new MyColumn(); myCol.Name = column.ColumnName; string exDataType = (column.ExtendedProperties["ExtendedDataType"] == null)? String.Empty : column.ExtendedProperties["ExtendedDataType"].ToString(); switch (exDataType) { case ("String"): case ("NChar"): case ("NVarChar"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_WSTR; myCol.Length = (column.ExtendedProperties["DataSize"] == null) ? column.MaxLength : Convert.ToInt32(column.ExtendedProperties["DataSize"], CultureInfo.InvariantCulture); myCol.CodePage = 1252; break; case ("Char"): case ("VarChar"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR; myCol.Length = (column.ExtendedProperties["DataSize"] == null) ? column.MaxLength : Convert.ToInt32(column.ExtendedProperties["DataSize"], CultureInfo.InvariantCulture); myCol.CodePage = 1252; break; case ("SByte"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_I1; break; case ("TinyInt"): case ("Byte"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_UI1; break; case ("SmallInt"): case ("Int16"): case ("Short"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_I2; break; case ("Int"): case ("Integer"): case ("Int32"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_I4; break; case ("BigInt"): case ("Int64"): case ("Long"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_I8; break; case ("UInt16"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_UI2; break; case ("UInt32"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_UI4; break; case ("UInt64"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_UI8; break; case ("VarBinary"): case ("Binary"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES; myCol.Length = (column.ExtendedProperties["DataSize"] == null) ? column.MaxLength : Convert.ToInt32(column.ExtendedProperties["DataSize"], CultureInfo.InvariantCulture); break; case ("Bit"): case ("Boolean"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BOOL; break; case ("DateTime"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_DBTIMESTAMP; break; case ("DBTime"): case ("Time"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_DBTIME; break; case ("DBDate"): case ("Date"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_DBDATE; break; case ("Decimal"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_DECIMAL; break; case ("Numeric"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_NUMERIC; myCol.Precision = (column.ExtendedProperties["Precision"] == null) ? column.MaxLength : Convert.ToInt32(column.ExtendedProperties["Precision"], CultureInfo.InvariantCulture); myCol.Scale = (column.ExtendedProperties["Scale"] == null) ? 0 : Convert.ToInt32(column.ExtendedProperties["Scale"], CultureInfo.InvariantCulture); break; case ("Money"): case ("Currency"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_CY; break; case ("Float"): case ("Double"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_R8; break; case ("Real"): case ("Single"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_R4; break; case ("Guid"): myCol.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_GUID; break; default: return(false); } m_columns.Add(myCol.Name, myCol); } return(true); }
public SSISAdoNetDestination(AdoNetDestination dbdst, MainPipe pipe, IDTSComponentMetaData100 src, int outputID, ConnectionManager cm) : base(pipe, "ADO NET Destination", outputID) { //create Ado Net destination component //set connection properties cm.Name = String.Format(CultureInfo.InvariantCulture, "AdoNet Destination Connection Manager {0}", outputID); cm.ConnectionString = dbdst.ConnectionString; cm.Description = dbdst.Description; cm.Qualifier = dbdst.DBConnection.Qualifier; IDTSComponentMetaData100 comp = this.MetadataCollection; CManagedComponentWrapper dcomp = comp.Instantiate(); // Set AdoNet destination custom properties foreach (KeyValuePair <string, object> prop in dbdst.CustomProperties.CustomPropertyCollection.InnerArrayList) { dcomp.SetComponentProperty(prop.Key, prop.Value); } //default - OpenRowset; ovveride OpenRowset with stagingtablename if staging is used if (!(dbdst.StagingBlock == null) && dbdst.StagingBlock.Staging) { dcomp.SetComponentProperty("TableOrViewName", dbdst.StagingBlock.StagingTableName); } else { dcomp.SetComponentProperty("TableOrViewName", dbdst.CustomProperties.TableOrViewName); } if (comp.RuntimeConnectionCollection.Count > 0) { comp.RuntimeConnectionCollection[0].ConnectionManagerID = cm.ID; comp.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.GetExtendedInterface(cm); } this.Reinitialize(dcomp); //Create datatype converter if needed Dictionary <string, int> converted = new Dictionary <string, int>(); IDTSVirtualInput100 vInput = src.InputCollection[0].GetVirtualInput(); if (this.needDataTypeChange(vInput, comp.InputCollection[0])) { //create the destination column collection Dictionary <string, MyColumn> exColumns = new Dictionary <string, MyColumn>(); foreach (IDTSExternalMetadataColumn100 exColumn in comp.InputCollection[0].ExternalMetadataColumnCollection) { MyColumn col = new MyColumn(); col.Name = exColumn.Name; col.DataType = exColumn.DataType; col.Length = exColumn.Length; col.Precision = exColumn.Precision; col.Scale = exColumn.Scale; col.CodePage = exColumn.CodePage; exColumns.Add(exColumn.Name, col); } SSISDataConverter ssisdc = new SSISDataConverter(pipe, src, outputID, exColumns); src = ssisdc.MetadataCollection; converted = ssisdc.ConvertedColumns; outputID = 0; } this.ConnectComponents(src, outputID); this.MatchInputColumns(converted, true); }
public SSISExcelDestination(ExcelDestination dbdst, MainPipe pipe, IDTSComponentMetaData100 src, int outputID, ConnectionManager cm) : base(pipe, "Excel Destination", outputID) { //create ole db destination component //set connection properties cm.Name = String.Format(CultureInfo.InvariantCulture, "Excel Destination Connection Manager {0}", outputID); cm.ConnectionString = dbdst.ConnectionString; cm.Description = dbdst.Description; //mwrt.IDTSConnectionManagerExcel100 ecm = cm.InnerObject as mwrt.IDTSConnectionManagerExcel100; //ecm.ExcelFilePath = dbdst.FilePath; //ecm.FirstRowHasColumnName = dbdst.Header; //ecm.ExcelVersionNumber = mwrt.DTSExcelVersion.DTSExcelVer_2007; IDTSComponentMetaData100 comp = this.MetadataCollection; CManagedComponentWrapper dcomp = comp.Instantiate(); // Set oledb destination custom properties //default to openrowset dcomp.SetComponentProperty("AccessMode", 0); //foreach (KeyValuePair<string, object> prop in dbdst.CustomProperties.CustomPropertyCollection.InnerArrayList) foreach (KeyValuePair <string, object> prop in dbdst.CustomProperties.CustomPropertyCollection.InnerArrayList) { dcomp.SetComponentProperty(prop.Key, prop.Value); } if (comp.RuntimeConnectionCollection.Count > 0) { comp.RuntimeConnectionCollection[0].ConnectionManagerID = cm.ID; comp.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.GetExtendedInterface(cm); } this.Reinitialize(dcomp); //Create datatype converter if needed Dictionary <string, int> converted = new Dictionary <string, int>(); IDTSVirtualInput100 vInput = src.InputCollection[0].GetVirtualInput(); if (this.needDataTypeChange(vInput, comp.InputCollection[0])) { //create the destination column collection Dictionary <string, MyColumn> exColumns = new Dictionary <string, MyColumn>(); foreach (IDTSExternalMetadataColumn100 exColumn in comp.InputCollection[0].ExternalMetadataColumnCollection) { MyColumn col = new MyColumn(); col.Name = exColumn.Name; col.DataType = exColumn.DataType; col.Length = exColumn.Length; col.Precision = exColumn.Precision; col.Scale = exColumn.Scale; col.CodePage = exColumn.CodePage; exColumns.Add(exColumn.Name, col); } SSISDataConverter ssisdc = new SSISDataConverter(pipe, src, outputID, exColumns); src = ssisdc.MetadataCollection; converted = ssisdc.ConvertedColumns; outputID = 0; } this.ConnectComponents(src, outputID); this.MatchInputColumns(converted, true); }