Aracılığıyla paylaş


Özel Bağlantı Yöneticisi için Kullanıcı Arabirimi Geliştirme

Şunlar için geçerlidir: Azure Data Factory'de SQL Server SSIS Integration Runtime

Özel işlevselliğinizi sağlamak için temel sınıfın özelliklerini ve yöntemlerinin uygulanmasını geçersiz kıldıktan sonra, bağlantı yöneticiniz için özel bir kullanıcı arabirimi oluşturmak isteyebilirsiniz. Özel kullanıcı arabirimi oluşturmazsanız, kullanıcılar bağlantı yöneticinizi yalnızca Özellikler penceresini kullanarak yapılandırabilir.

Özel bir kullanıcı arabirimi projesinde veya derlemesinde, normalde IDtsConnectionManagerUIuygulayan bir sınıf ve kullanıcıdan bilgi toplamak için görüntülediği Windows formu olmak üzere iki sınıfınız vardır.

Önemli

özel kullanıcı arabiriminizi imzaladıktan ve oluşturup genel derleme önbelleğine yükledikten sonra Özel Bağlantı Yöneticisi kodlamabölümünde açıklandığı gibi, DtsConnectionAttributeUITypeName özelliğinde bu sınıfın tam adını sağlamayı unutmayın.

Not

Integration Services'da yerleşik olarak bulunan görevlerin, kaynakların ve hedeflerin çoğu yalnızca belirli yerleşik bağlantı yöneticisi türleriyle çalışır. Bu nedenle, bu örnekler yerleşik görevler ve bileşenlerle test edilemez.

Kullanıcı Arabirimi Sınıfını Kodlama

IDtsConnectionManagerUI arabiriminin dört yöntemi vardır: Initialize, New, Editve Delete. Aşağıdaki bölümlerde bu dört yöntem açıklanmaktadır.

Not

Kullanıcı bağlantı yöneticisinin bir örneğini sildiğinde temizleme gerekmiyorsa Delete yöntemi için herhangi bir kod yazmanız gerekmeyebilir.

Kullanıcı Arabirimini Başlatma

Initialize yönteminde tasarımcı, kullanıcı arabirimi sınıfının bağlantı yöneticisinin özelliklerini değiştirebilmesi için yapılandırılan bağlantı yöneticisine bir başvuru sağlar. Aşağıdaki kodda gösterildiği gibi kodunuzun daha sonra kullanmak üzere bağlantı yöneticisine başvuruyu önbelleğe alması gerekir.

Public Sub Initialize(ByVal connectionManager As Microsoft.SqlServer.Dts.Runtime.ConnectionManager, ByVal serviceProvider As System.IServiceProvider) Implements Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.Initialize  
  
    _connectionManager = connectionManager  
    _serviceProvider = serviceProvider  
  
  End Sub  
public void Initialize(Microsoft.SqlServer.Dts.Runtime.ConnectionManager connectionManager, System.IServiceProvider serviceProvider)  
{  
  
  _connectionManager = connectionManager;  
  _serviceProvider = serviceProvider;  
  
}  

Kullanıcı Arabiriminin Yeni Bir Örneğini Oluşturma

Oluşturucu olmayan New yöntemi, kullanıcı bağlantı yöneticisinin yeni bir örneğini oluşturduğunda Initialize yönteminden sonra çağrılır. New yönteminde, kullanıcı var olan bir bağlantı yöneticisini kopyalayıp yapıştırmadığı sürece formu düzenleme için görüntülemek istersiniz. Aşağıdaki kod, bu yöntemin bir uygulamasını gösterir.

Public Function [New](ByVal parentWindow As System.Windows.Forms.IWin32Window, ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, ByVal connectionUIArgs As Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs) As Boolean Implements Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.New  
  
  Dim clipboardService As IDtsClipboardService  
  
  clipboardService = _  
    DirectCast(_serviceProvider.GetService(GetType(IDtsClipboardService)), IDtsClipboardService)  
  If Not clipboardService Is Nothing Then  
    ' If the connection manager has been copied and pasted, take no action.  
    If clipboardService.IsPasteActive Then  
      Return True  
    End If  
  End If  
  
  Return EditSqlConnection(parentWindow)  
  
End Function  
public bool New(System.Windows.Forms.IWin32Window parentWindow, Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs connectionUIArgs)  
  {  
    IDtsClipboardService clipboardService;  
  
    clipboardService = (IDtsClipboardService)_serviceProvider.GetService(typeof(IDtsClipboardService));  
    if (clipboardService != null)  
    // If connection manager has been copied and pasted, take no action.  
    {  
      if (clipboardService.IsPasteActive)  
      {  
        return true;  
      }  
    }  
  
    return EditSqlConnection(parentWindow);  
  }  

Bağlantı Yöneticisi'ni düzenleme

Düzenleme formu hem New hem de Edit yöntemlerinden çağrıldığından, formu görüntüleyen kodu kapsüllemek için bir yardımcı işlevi kullanmak uygundur. Aşağıdaki kod, bu yardımcı işlevin bir uygulamasını gösterir.

Private Function EditSqlConnection(ByVal parentWindow As IWin32Window) As Boolean  
  
  Dim sqlCMUIForm As New SqlConnMgrUIFormVB  
  
  sqlCMUIForm.Initialize(_connectionManager, _serviceProvider)  
  If sqlCMUIForm.ShowDialog(parentWindow) = DialogResult.OK Then  
    Return True  
  Else  
    Return False  
  End If  
  
End Function  
private bool EditSqlConnection(IWin32Window parentWindow)  
 {  
  
   SqlConnMgrUIFormCS sqlCMUIForm = new SqlConnMgrUIFormCS();  
  
   sqlCMUIForm.Initialize(_connectionManager, _serviceProvider);  
   if (sqlCMUIForm.ShowDialog(parentWindow) == DialogResult.OK)  
   {  
     return true;  
   }  
   else  
   {  
     return false;  
   }  
  
 }  

Edit yönteminde düzenleme için formu görüntülemeniz yeterlidir. Aşağıdaki kod, formun kodunu kapsüllemek için bir yardımcı işlevi kullanan Edit yönteminin uygulamasını gösterir.

Public Function Edit(ByVal parentWindow As System.Windows.Forms.IWin32Window, ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, ByVal connectionUIArg As Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs) As Boolean Implements Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.Edit  
  
  Return EditSqlConnection(parentWindow)  
  
End Function  
public bool Edit(System.Windows.Forms.IWin32Window parentWindow, Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs connectionUIArg)  
{  
  
  return EditSqlConnection(parentWindow);  
  
}  

Kullanıcı Arabirimi Formunu Kodlama

IDtsConnectionManagerUI arabiriminin yöntemlerini uygulayan kullanıcı arabirimi sınıfını oluşturduktan sonra, kullanıcının bağlantı yöneticinizin özelliklerini yapılandırabileceği bir Windows formu oluşturmanız gerekir.

Kullanıcı Arabirimi Formunu Başlatma

Düzenlemek üzere özel formunuzu görüntülerken, düzenlenmekte olan bağlantı yöneticisine bir başvuru geçirebilirsiniz. Bu başvuruyu, form sınıfı için özel bir oluşturucu kullanarak veya burada gösterildiği gibi kendi Initialize yönteminizi oluşturarak geçirebilirsiniz.

Public Sub Initialize(ByVal connectionManager As ConnectionManager, ByVal serviceProvider As IServiceProvider)  
  
  _connectionManager = connectionManager  
  _serviceProvider = serviceProvider  
  ConfigureControlsFromConnectionManager()  
  EnableControls()  
  
End Sub  
public void Initialize(ConnectionManager connectionManager, IServiceProvider serviceProvider)  
 {  
  
   _connectionManager = connectionManager;  
   _serviceProvider = serviceProvider;  
   ConfigureControlsFromConnectionManager();  
   EnableControls();  
  
 }  

Kullanıcı Arabirimi Formunda Özellikleri Ayarlama

Son olarak, form sınıfınız, bağlantı yöneticisinin özelliklerinin mevcut veya varsayılan değerleriyle ilk kez yüklendiğinde formdaki denetimleri dolduran bir yardımcı işleve ihtiyaç duyar. Form sınıfınız, kullanıcı Tamam'a tıklayıp formu kapattığında özelliklerin değerlerini kullanıcı tarafından girilen değerlerle ayarlayan benzer bir işleve de ihtiyaç duyar.

Private Const CONNECTIONNAME_BASE As String = "SqlConnectionManager"  
  
Private Sub ConfigureControlsFromConnectionManager()  
  
  Dim tempName As String  
  Dim tempServerName As String  
  Dim tempDatabaseName As String  
  
  With _connectionManager  
  
    tempName = .Properties("Name").GetValue(_connectionManager).ToString  
    If Not String.IsNullOrEmpty(tempName) Then  
      _connectionName = tempName  
    Else  
      _connectionName = CONNECTIONNAME_BASE  
    End If  
  
    tempServerName = .Properties("ServerName").GetValue(_connectionManager).ToString  
    If Not String.IsNullOrEmpty(tempServerName) Then  
      _serverName = tempServerName  
      txtServerName.Text = _serverName  
    End If  
  
    tempDatabaseName = .Properties("DatabaseName").GetValue(_connectionManager).ToString  
    If Not String.IsNullOrEmpty(tempDatabaseName) Then  
      _databaseName = tempDatabaseName  
      txtDatabaseName.Text = _databaseName  
    End If  
  
  End With  
  
End Sub  
  
Private Sub ConfigureConnectionManagerFromControls()  
  
  With _connectionManager  
    .Properties("Name").SetValue(_connectionManager, _connectionName)  
    .Properties("ServerName").SetValue(_connectionManager, _serverName)  
    .Properties("DatabaseName").SetValue(_connectionManager, _databaseName)  
  End With  
  
End Sub  
private const string CONNECTIONNAME_BASE = "SqlConnectionManager";  
  
private void ConfigureControlsFromConnectionManager()  
 {  
  
   string tempName;  
   string tempServerName;  
   string tempDatabaseName;  
  
   {  
     tempName = _connectionManager.Properties["Name"].GetValue(_connectionManager).ToString();  
     if (!String.IsNullOrEmpty(tempName))  
     {  
       _connectionName = tempName;  
     }  
     else  
     {  
       _connectionName = CONNECTIONNAME_BASE;  
     }  
  
     tempServerName = _connectionManager.Properties["ServerName"].GetValue(_connectionManager).ToString();  
     if (!String.IsNullOrEmpty(tempServerName))  
     {  
       _serverName = tempServerName;  
       txtServerName.Text = _serverName;  
     }  
  
     tempDatabaseName = _connectionManager.Properties["DatabaseName"].GetValue(_connectionManager).ToString();  
     if (!String.IsNullOrEmpty(tempDatabaseName))  
     {  
       _databaseName = tempDatabaseName;  
       txtDatabaseName.Text = _databaseName;  
     }  
  
   }  
  
 }  
  
 private void ConfigureConnectionManagerFromControls()  
 {  
  
   {  
     _connectionManager.Properties["Name"].SetValue(_connectionManager, _connectionName);  
     _connectionManager.Properties["ServerName"].SetValue(_connectionManager, _serverName);  
     _connectionManager.Properties["DatabaseName"].SetValue(_connectionManager, _databaseName);  
   }  
  
 }  

Ayrıca Bkz.

Özel Bağlantı Yöneticisi oluşturma
Özel Bağlantı Yöneticisi kodlama