void page_CreateNewConnection(object sender, EventArgs args) { IDtsConnectionService ConnectionService = (IDtsConnectionService)this.ServiceProvider.GetService(typeof(IDtsConnectionService)); if (ConnectionService == null) { Exception ex = new InvalidOperationException("Connection Service Unavailable"); this.ReportErrors(ex); return; } ArrayList connections = ConnectionService.CreateConnection("SSDS"); if (connections != null && connections.Count > 0) { ConnectionManager cm = connections[connections.Count - 1] as ConnectionManager; this.ComponentMetadata.RuntimeConnectionCollection[0].ConnectionManagerID = cm.ID; this.ComponentMetadata.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.ToConnectionManager90(cm); } return; }
private void connectionComboBox_SelectedIndexChanged(object sender, EventArgs e) { // Special case: the <New...> item on the combo box causes us to try to create a new connection manager. if ((string)connectionComboBox.SelectedItem == "New connection") { // Fetch the IDtsConnectionService. It provides facilities to present the user with // a new connection dialog, so they don't need to exit the (modal) UI to create one. IDtsConnectionService connService = (IDtsConnectionService)serviceProvider_.GetService(typeof(IDtsConnectionService)); System.Collections.ArrayList created = connService.CreateConnection("ADO.NET:SQL"); // CreateConnection() returns back a list of connections that were created -- go ahead // and update our list with those new items. foreach (ConnectionManager cm in created) { connectionComboBox.Items.Insert(0, cm.Name); } // If we created an item, we select it in the combo box, otherwise, clear the selection entirely. if (created.Count > 0) { connectionComboBox.SelectedIndex = 0; } else { connectionComboBox.SelectedIndex = -1; } } // No matter what, we set the current connection manager to the chosen item if it's real. if (connections_.Contains(connectionComboBox.SelectedItem)) { this.component_.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.ToConnectionManager90(connections_[connectionComboBox.SelectedItem]); this.component_.RuntimeConnectionCollection[0].ConnectionManagerID = connections_[connectionComboBox.SelectedItem].ID; } needsNewMetaData_ = true; }
void page_SetConnectionAttributes(object sender, ConnectionManagerElement args) { this.ClearErrors(); try { foreach (ConnectionManager cm in this.Connections) { if (cm.ID.Equals(args.ID, StringComparison.OrdinalIgnoreCase)) { this.ComponentMetadata.RuntimeConnectionCollection[0].ConnectionManagerID = args.ID; this.ComponentMetadata.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.ToConnectionManager90(cm); return; } } } catch (Exception ex) { this.ReportErrors(ex); } }
public override void Exec() { try { UIHierarchy solExplorer = this.ApplicationObject.ToolWindows.SolutionExplorer; UIHierarchyItem hierItem = ((UIHierarchyItem)((System.Array)solExplorer.SelectedItems).GetValue(0)); ProjectItem pi = (ProjectItem)hierItem.Object; Window win = pi.Document.ActiveWindow; IDesignerHost designer = (IDesignerHost)pi.Document.ActiveWindow.Object; Package package = null; ConnectionManager conn = GetSelectedConnectionManager(designer, out package); BIDSHelper.SSIS.FixedWidthColumnsForm form = new BIDSHelper.SSIS.FixedWidthColumnsForm(); if (conn != null && conn.Properties["Format"].GetValue(conn).ToString() == "FixedWidth") { //hiding properties for ragged right form.dataGridView1.Height = form.dataGridView1.Height + 50 + 26; form.dataGridView1.Top -= 50; form.label1.Height -= 50; form.cboRaggedRightDelimiter.Visible = false; form.lblRaggedRight.Visible = false; } DialogResult dialogResult = form.ShowDialog(); if (dialogResult == DialogResult.OK) { #if KATMAI || DENALI || SQL2014 wrap.IDTSConnectionManagerFlatFile100 ff = conn.InnerObject as wrap.IDTSConnectionManagerFlatFile100; DtsConvert.GetExtendedInterface(conn); #else wrap.IDTSConnectionManagerFlatFile90 ff = conn.InnerObject as wrap.IDTSConnectionManagerFlatFile90; DtsConvert.ToConnectionManager90(conn); #endif while (ff.Columns.Count > 0) { ff.Columns.Remove(0); } List <string> listUsedNames = new List <string>(); //JCW - Added counter to identify the last column int columnCount = 1; foreach (DataGridViewRow row in form.dataGridView1.Rows) { string sName = row.Cells[0].Value.ToString().Trim(); string sOriginalName = sName; int i = 1; while (listUsedNames.Contains(sName)) //find a unique name for the column { sName = sOriginalName + (++i); } listUsedNames.Add(sName); #if KATMAI || DENALI || SQL2014 wrap.IDTSConnectionManagerFlatFileColumn100 col = ff.Columns.Add(); wrap.IDTSName100 name = col as wrap.IDTSName100; #else wrap.IDTSConnectionManagerFlatFileColumn90 col = ff.Columns.Add(); wrap.IDTSName90 name = col as wrap.IDTSName90; #endif name.Name = sName; col.MaximumWidth = int.Parse(row.Cells[1].Value.ToString()); col.DataType = Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR; if (columnCount == form.dataGridView1.Rows.Count && form.cboRaggedRightDelimiter.Text != "[None]") { col.ColumnWidth = 0; col.ColumnType = "Delimited"; col.ColumnDelimiter = DecodeDelimiter(form.cboRaggedRightDelimiter.Text); } else { col.ColumnWidth = int.Parse(row.Cells[1].Value.ToString()); col.ColumnType = "FixedWidth"; } columnCount++; } //mark package object as dirty IComponentChangeService changesvc = (IComponentChangeService)designer.GetService(typeof(IComponentChangeService)); changesvc.OnComponentChanging(package, null); changesvc.OnComponentChanged(package, null, null, null); //marks the package designer as dirty SSISHelpers.MarkPackageDirty(package); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }