Share via


Bir ODBC hedef komut dosyası bileşeni ile oluşturma

In SQL Server Integration Services, you typically save data to an ODBC destination by using an ADO.NET destination and the .NET Framework Data Provider for ODBC.Ancak, tek bir pakette bir ad hoc ODBC hedef kullanmak için de oluşturabilirsiniz.Bu ad hoc ODBC hedef oluşturmak için , komut dosyası bileşeni aşağıdaki örnekte gösterildiği gibi kullanın.

Not

Birden çok veri akışı görevleri ve birden çok paket arasında daha kolay yeniden kullanabileceğiniz bir bileşen oluşturmak istiyorsanız, bu komut dosyası bileşeni örnek kodu için bir özel veri akışı bileşeni başlangıç noktası olarak kullanarak göz önünde bulundurun.Daha fazla bilgi için bkz:Özel veri akışı bileşen geliştirme.

Örnek

The following example demonstrates how to create a destination component that uses an existing ODBC connection manager to save data from the data flow into a Microsoft SQL Server table.

Bu örnekte, özel değiştirilmiş bir sürümüdür ADO.NET Bu konuda, gösterilen hedef Hedef komut dosyası bileşeni ile oluşturma.Ancak, bu örnekte, özel ADO.NET Hedef, bir ODBC Bağlantı Yöneticisi ile birlikte çalışmak ve verileri bir ODBC hedefe kaydetmek için değiştirildi. Bu değişiklikler, aşağıdaki değişiklikleri de içerir:

  • Çağrılamıyor, AcquireConnection yerel bir nesne döndürdüğünden, ODBC Bağlantı Yöneticisi ' yöntem yönetilen kod. Bu nedenle, bu örnek verilere bağlanmak için Bağlantı Yöneticisi bağlantı dizisini kullanır kaynak yönetilen ODBC kullanarak doğrudan .NET Framework Veri sağlayıcı.

  • The OdbcCommand expects positional parameters.Parametrelerin konumlarını komutunun metin soru işaretlerine (?) gösterilir.(Tersine, bir SqlCommand adlandırılmış parametreler umuyor.)

Bu örnek kullanır Person.Address tablo in the AdventureWorks örnek veritabanı.The example passes the first and fourth columns, the intAddressID and nvarchar(30)City columns, of this table through the data flow.Bu aynı veri kullanılan kaynak, dönüştürme ve konusunda, hedef örnek Belirli bir komut dosyası bileşenleri türleri geliştirme.

Bu komut dosyası bileşeni örnek yapılandırmak için

  1. Yöneticisine bağlanan bir ODBC bağlantısı oluşturma AdventureWorks veritabanıdır.

  2. Aşağıdaki Transact-SQL komutu çalıştırarak hedef tablo oluşturmak AdventureWorks veritabanı:

    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    )
    
  3. Yeni bir komut dosyası bileşeni için veri akışı Tasarımcısı yüzey ekleyin ve hedef olarak yapılandırın.

  4. Hedef bileşeninde Geliş yönündeki çok kaynak ya da dönüştürme çıkışını bağlanmak için SSIS Tasarımcı. (Bir kaynaktan bir hedef herhangi bir dönüştürme olmaksızın doğrudan bağlanabilirsiniz.) Bu örnek çalıştığından emin olmak için , Geliş yönündeki bileşeni çıkışını en azından içermelidirAddressID and Şehir sütunlarındanPerson.Address tablosuAdventureWorks örnek veritabanı.

  5. Açık Komut dosyası dönüştürme Düzenleyicisi.Üzerinde Giriş bir sütun sayfa, seçin.AddressID and Şehir sütunlar.

  6. Üzerinde Giriş ve çıkışlarını sayfa, giriş gibi daha tanımlayıcı bir adla yeniden adlandırın.MyAddressInput.

  7. Üzerinde Bağlantı Yöneticisi sayfa ekleme veya ODBC Bağlantı Yöneticisi gibi bir açıklayıcı adla oluşturun.MyODBCConnectionManager.

  8. Üzerinde Komut dosyası sayfasında, tıklatın.Komut dosyası Düzenleve aşağıda gösterilen kodu girin...ScriptMain sınıf.

  9. Komut dosyası geliştirme ortamı, Kapat'ı kapatmak Komut dosyası dönüştürme Düzenleyicisive sonra da örnek çalıştırın.

    Imports System.Data.Odbc
    ...
    Public Class ScriptMain
        Inherits UserComponent
    
        Dim odbcConn As OdbcConnection
        Dim odbcCmd As OdbcCommand
        Dim odbcParam As OdbcParameter
    
        Public Overrides Sub AcquireConnections(ByVal Transaction As Object)
    
            Dim connectionString As String
            connectionString = Me.Connections.MyODBCConnectionManager.ConnectionString
            odbcConn = New OdbcConnection(connectionString)
            odbcConn.Open()
    
        End Sub
    
        Public Overrides Sub PreExecute()
    
            odbcCmd = New OdbcCommand("INSERT INTO Person.Address2(AddressID, City) " & _
                "VALUES(?, ?)", odbcConn)
            odbcParam = New OdbcParameter("@addressid", OdbcType.Int)
            odbcCmd.Parameters.Add(odbcParam)
            odbcParam = New OdbcParameter("@city", OdbcType.NVarChar, 30)
            odbcCmd.Parameters.Add(odbcParam)
    
        End Sub
    
        Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)
    
            With odbcCmd
                .Parameters("@addressid").Value = Row.AddressID
                .Parameters("@city").Value = Row.City
                .ExecuteNonQuery()
            End With
    
        End Sub
    
        Public Overrides Sub ReleaseConnections()
    
            odbcConn.Close()
    
        End Sub
    
    End Class
    
    using System.Data.Odbc;
    ...
    public class ScriptMain :
        UserComponent
    {
        OdbcConnection odbcConn;
        OdbcCommand odbcCmd;
        OdbcParameter odbcParam;
    
        public override void AcquireConnections(object Transaction)
        {
    
            string connectionString;
            connectionString = this.Connections.MyODBCConnectionManager.ConnectionString;
            odbcConn = new OdbcConnection(connectionString);
            odbcConn.Open();
    
        }
    
        public override void PreExecute()
        {
    
            odbcCmd = new OdbcCommand("INSERT INTO Person.Address2(AddressID, City) " +
                "VALUES(?, ?)", odbcConn);
            odbcParam = new OdbcParameter("@addressid", OdbcType.Int);
            odbcCmd.Parameters.Add(odbcParam);
            odbcParam = new OdbcParameter("@city", OdbcType.NVarChar, 30);
            odbcCmd.Parameters.Add(odbcParam);
    
        }
    
        public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
        {
    
            {
                odbcCmd.Parameters["@addressid"].Value = Row.AddressID;
                odbcCmd.Parameters["@city"].Value = Row.City;
                odbcCmd.ExecuteNonQuery();
            }
    
        }
    
        public override void ReleaseConnections()
        {
    
            odbcConn.Close();
    
        }
    }
    
Integration Services icon (small) Tümleştirme Hizmetleri ile güncel kalın

Karşıdan yüklemeler, makaleleri, örnekler ve en son Microsoft video yanı sıra, seçili topluluğun çözümleri için ziyaret Integration Services sayfa MSDN veya TechNet:

Bu güncelleştirmelerin otomatik bildirim için kullanılabilir RSS akışlarına abone olmak sayfa.