Aracılığıyla paylaş


odbc hedef Script bileşeni ile oluşturma

De SQL Server   Integration Services, genelde veri için odbc hedef kullanarak kaydettiğiniz bir ADO.NEThedef ve .NET Frameworkiçin odbc veri sağlayıcısı. Ancak, tek bir paket kullanmak için bir ad hoc odbc hedef de oluşturabilirsiniz. Bu geçici odbc hedef oluşturmak için Script bileşeni aşağıdaki örnekte gösterildiği gibi kullanın.

[!NOT]

Birden çok veri akışı görevler ve birden çok paket üzerinden daha kolay yeniden kullanabileceğiniz bileşen oluşturmak isterseniz, kodu bu Script bileşeni örnek başlangıç noktası olarak kullanarak özel veri akışı bileşeni için düşünün. Daha fazla bilgi için, bkz. Bir özel veri akışı bileşen geliştirme.

Örnek

Aşağıdaki örnek veri akışı veri kaydetmek için Bağlantı Yöneticisi varolan odbc kullanan bir hedef bileşeni oluşturulması gösterilmiştir bir Microsoft  SQL Servertablosu.

Bu örnek özel değiştirilmiş bir versiyonu olan ADO.NETBu konudaki gösterilmiştir hedef bir hedef Script bileşeni ile oluşturma. Ancak, bu örnekte, özel ADO.NETbir odbc Bağlantı Yöneticisi ile çalışır ve bir odbc hedef veri kaydetmek için hedef değiştirildi. Bu değişiklikler, aşağıdaki değişiklikleri de içerir:

  • Çağrı yapamazsınız AcquireConnectionyöntemi odbc Bağlantı Yöneticisi'nden yönetilen kod, yerel bir nesne döndürdüğünden. Bu nedenle, bu örnek doğrudan yönetilen odbc kullanarak veri kaynağına bağlanmak için Bağlantı Yöneticisi bağlantı dizesini kullanır .NET Frameworkveri sağlayıcısı.

  • OdbcCommandKonumsal parametreler bekliyor. Parametrelerin konumlarını soru işaretleri (?) komut metni gösterilir. (Buna karşılık, bir SqlCommandAdlandırılmış parametreler bekliyor.)

Bu örnek Person.Address içinde tablo AdventureWorks örnek veritabanı. Örneğin birinci ve dördüncü sütun geçer int AddressID ve nvarchar(30) şehir , bu tablonun sütunlarının aracılığıyla veri akışı. Bu aynı veri kaynağı dönüşümü ve hedef örnekleri konusunda kullanılan Komut dosyası bileşenleri belirli türleri geliştirme.

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

  1. Bağlanan Yöneticisi odbc bağlantısı oluşturmak AdventureWorks veritabanı.

  2. Hedef tablo oluşturmak için aşağıdaki Transact-sql komutu çalıştırarak AdventureWorks veritabanı:

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

  4. Bir ters yönde kaynak veya dönüşüm çıktısını hedef bileşeni bağlanın SSIStasarımcı. (Kaynak doğrudan hedef olmadan dönüştürmeler bağlanabilirsiniz.) Bu örnek çalışır, ters yönde bileşen çıkış eklemeniz gerekir emin olmak için en az AddressID ve şehir sütunlarından Person.Address tablo AdventureWorks örnek veritabanı.

  5. Açık Komut dosyası dönüşümü Düzenleyicisi. Tarih Giriş sütunlar page, select AddressID ve şehir sütunlar.

  6. Tarih giriş ve çıkış sayfasında, giriş MyAddressInput gibi daha tanımlayıcı bir adla yeniden adlandırın.

  7. Tarih Bağlantı Yöneticisi sayfa ekleyin veya odbc Bağlantı Yöneticisi MyODBCConnectionManager gibi açıklayıcı bir ad oluşturun.

  8. Tarih Script sayfa'yı Komut dosyası Düzenleve aşağıda gösterilen komut girin ScriptMainsınıf

  9. Komut dosyası geliştirme ortamı kapatın kapatın Komut dosyası dönüşümü Düzenleyicisi, ve ö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
    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();
    
        }
    }
    
    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 simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.

Ayrıca bkz.

Kavramlar

Bir hedef Script bileşeni ile oluşturma