Share via


Nasıl Yapılır: çekme temelli abonelik (RMO programlama) oluşturma

Çekme abonelik programsal olarak kullanarak oluşturulabilir Çoğaltma Yönetim Nesneleri (RMO).çekme temelli abonelik oluşturmak için kullanılan RMO sınıfları, aboneliğin ait olduğu yayın türüne bağlıdır.

Anlık görüntü veya işlem için çekme temelli abonelik oluşturmak için yayın

  1. Bağlantıları abone ve Yayımcı kullanarak oluşturduğunuz ServerConnection Sınıf.

  2. örnek TransPublication 1. adımdaki Yayımcı bağlantısı kullanarak sınıf'ı tıklatın. Belirtin Name(), DatabaseName() ve ConnectionContext().

  3. Call LoadProperties() yöntem. Bu yöntem döndürüyorsa false, adım 2'te belirtilen özellikleri yanlıştır veya yayın sunucuda yok.

  4. Bit düzeyinde mantıksal AND (gerçekleştir& Visual C# ve And Visual Basic'te) arasında Attributes() özellik ve AllowPull(). Sonuç None(), küme Attributes() bit düzeyinde mantıksal OR (sonucuna| Visual C# ve Or Visual Basic'te) arasında Attributes() ve AllowPull(). Sonra arama CommitPropertyChanges() çekme abonelik etkinleştirmek için .

  5. abonelik veritabanı yoksa, bunu kullanarak oluşturduğunuz Database sınıf. Daha fazla bilgi için bkz: Oluşturma, değiştirme ve veritabanları kaldırılıyor.

  6. örnek TransPullSubscription sınıf.

  7. küme Aşağıdaki Abonelik özellikleri:

    • The ServerConnection to the abone created in step 1 for ConnectionContext().

    • Için Abonelik veritabanının adı DatabaseName().

    • Için yayımcının adını PublisherName().

    • Için yayın veritabanının adı PublicationDBName().

    • yayın adı PublicationName().

    • The Login() and Password() or SecurePassword() fields of SynchronizationAgentProcessSecurity() to provide the kimlik bilgileri for the Microsoft Windows account under which the Distribution Agent runs at the abone. Bu hesap, yerel bağlantılar için abone olun ve Windows kimlik doğrulaması kullanarak uzak bağlantı kurmak için kullanılır.

      Not

      Ayarı SynchronizationAgentProcessSecurity() Abonelik bir üyesi tarafından oluşturulduğunda gerekmez sysadmin sabit sunucu rolü, ancak önerilir. Aracı, bu durumda, SQL Server Agent hesabın özelliklerini.Daha fazla bilgi için bkz: Çoğaltma aracısı güvenlik modeli.

    • (Isteğe bağlı) Değeri true için CreateSyncAgentByDefault() eşitlemek için kullanılan bir aracı iþi oluþturmak için abonelik. Belirttiğiniz false (varsayılan), aboneliğin yalnızca bir program aracılığıyla eşitlenemez ve ek özelliklerini belirtmelisiniz TransSynchronizationAgent Bu nesneden eriştiğinize SynchronizationAgent() özellik. Daha fazla bilgi için bkz: Nasıl Yapılır: çekme temelli abonelik (RMO programlama) eşitleyebilirsiniz..

      Not

      Microsoft SQL Server Express, SQL Server Agent desteklemiyor.Değeri belirttiğiniz true Express aboneleri için aracı iş oluşturulmadı. Ancak, abonelik ile ilgili önemli meta veriler, Abone tarafında depolanır.

    • (Isteğe bağlı) küme SqlStandardLogin() ve SqlStandardPassword() veya SecureSqlStandardPassword() alanları DistributorSecurity() SQL Server kimlik doğrulaması için dağıtımcı bağlanmak için kullanırken.

  8. Call Create() yöntem.

  9. örnek kullanarak TransPublication Adım 2'yi, sonra da arama sınıfından MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType) çekme temelli abonelik yayımcı ile kaydetmek için yöntem. Bu kaydı zaten varsa, bir özel durum oluşur.

Bir mektup birleştirme için çekme temelli abonelik oluşturmak için yayın

  1. Bağlantıları abone ve Yayımcı kullanarak oluşturduğunuz ServerConnection sınıf.

  2. örnek MergePublication 1. adımdaki Yayımcı bağlantısı kullanarak sınıf'ı tıklatın. Belirtin Name(), DatabaseName(), ve ConnectionContext().

  3. Call LoadProperties() yöntem. Bu yöntem döndürüyorsa false, adım 2'te belirtilen özellikleri yanlıştır veya yayın sunucuda yok.

  4. Bit düzeyinde mantıksal AND (gerçekleştir& Visual C# ve And Visual Basic'te) arasında Attributes() özellik ve AllowPull(). Sonuç None(), küme Attributes() bit düzeyinde mantıksal OR (sonucuna| Visual C# ve Or Visual Basic'te) arasında Attributes() ve AllowPull(). Sonra arama CommitPropertyChanges() çekme abonelik etkinleştirmek için .

  5. abonelik veritabanı yoksa, bunu kullanarak oluşturduğunuz Database sınıf. Daha fazla bilgi için bkz: Oluşturma, değiştirme ve veritabanları kaldırılıyor.

  6. örnek MergePullSubscription sınıf.

  7. küme Aşağıdaki Abonelik özellikleri:

    • The ServerConnection to the abone created in step 1 for ConnectionContext().

    • Için Abonelik veritabanının adı DatabaseName().

    • Için yayımcının adını PublisherName().

    • Için yayın veritabanının adı PublicationDBName().

    • yayın adı PublicationName().

    • The Login() and Password() or SecurePassword() fields of SynchronizationAgentProcessSecurity() to provide the kimlik bilgileri for the Microsoft Windows account under which the Merge Agent runs at the abone. Bu hesap, yerel bağlantılar için abone olun ve Windows kimlik doğrulaması kullanarak uzak bağlantı kurmak için kullanılır.

      Not

      Ayarı SynchronizationAgentProcessSecurity() Abonelik bir üyesi tarafından oluşturulduğunda gerekmez sysadmin sabit sunucu rolü, ancak önerilir. Aracı, bu durumda, SQL Server Agent hesabın özelliklerini.Daha fazla bilgi için bkz: Çoğaltma aracısı güvenlik modeli.

    • (Isteğe bağlı) Değeri true için CreateSyncAgentByDefault() eşitlemek için kullanılan bir aracı iþi oluþturmak için abonelik. Belirttiğiniz false (varsayılan), aboneliğin yalnızca bir program aracılığıyla eşitlenemez ve ek özelliklerini belirtmelisiniz MergeSynchronizationAgent Bu nesneden eriştiğinize SynchronizationAgent() özellik. Daha fazla bilgi için bkz: Nasıl Yapılır: çekme temelli abonelik (RMO programlama) eşitleyebilirsiniz..

    • (Isteğe bağlı) küme SqlStandardLogin() ve SqlStandardPassword() veya SecureSqlStandardPassword() alanları DistributorSecurity() SQL Server kimlik doğrulaması için dağıtımcı bağlanmak için kullanırken.

    • (Isteğe bağlı) küme SqlStandardLogin() ve SqlStandardPassword() veya SecureSqlStandardPassword() alanları PublisherSecurity() Yayımcıya bağlanmak için SQL Server kimlik doğrulaması kullanıldığında.

  8. Call Create() yöntem.

  9. örnek kullanarak MergePublication Adım 2'yi, sonra da arama sınıfından MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, MergeSubscriberType, Single) çekme temelli abonelik yayımcı ile kaydetmek için yöntem. Bu kaydı zaten varsa, bir özel durum oluşur.

Example

Bu örnek, çekme temelli abonelik için bir işlem oluşturur yayın.The Microsoft Windows account kimlik bilgileri used to create the Distribution Agent iş are passed at runtime.

Bu örnek, bir mektup birleştirme için çekme temelli abonelik oluşturur yayın.Birleştirme Aracısı oluşturmak için kullanılan kimlik bilgileri Windows hesabı iş zamanında geçirilir.

Bu örnek, bir mektup birleştirme için çekme temelli abonelik oluşturur yayın bir ilişkili Aracısı iş ve abonelik meta verilerde oluşturmadan MSsubscription_properties.Birleştirme Aracısı oluşturmak için kullanılan kimlik bilgileri Windows hesabı iş zamanında geçirilir.

Bu örnek, bir mektup birleştirme için çekme temelli abonelik oluşturur yayın Web üzerinden eşitleme kullanarak ınternet üzerinden eşitlenebilir.Birleştirme Aracısı oluşturmak için kullanılan kimlik bilgileri Windows hesabı iş zamanında geçirilir.Daha fazla bilgi için, bkz. Nasıl Yapılır: Birleştirme çoğaltması (RMO programlama) için Web üzerinden eşitleme yapılandır