Aracılığıyla paylaş


Nasıl Yapılır: Bir COM tabanlı özel çakışma giderici bir birleştirme makalesi (çoğaltma programlama) için uygular.

The Microsoft.SqlServer.Replication.BusinessLogicSupport namespace implements an arabirim that enables you to write complex iş mantığı to handle events and resolve conflicts that occur during the birleştirme çoğaltma synchronization process. Daha fazla bilgi için bkz: Nasıl Yapılır: Uygulamanız bir iş mantığı işleyicisi için bir birleştirme makalesi (çoğaltma programlama)Ayrıca, .You çakışmaları çözmek için kendi yerel kod tabanlı özel iş mantığı da yazabilirsiniz. Bu mantık, bir COM bileşeni yerleşik ürünler gibi kullanarak, dinamik bağlantı kitaplıkları (DLL) derlenmiş Microsoft Visual C++. Bu tür COM–based özel çakışma giderici uygulamalıdır ICustomResolver arabirim özel çakışma çözünürlüğü için tasarlanmıştır.

COM tabanlı özel çakışma giderici oluşturabilir ve

  1. Bir COM uyumlu geliştirme ortamında özel çakışma giderici kitaplığına bir başvuru ekleyin.

  2. Visual C++ bir proje için bu kitaplık, projenize almak için alma yönergesini kullanın.

  3. Uygulayan bir sınıf oluşturmak ICustomResolver arabirim.

  4. Bazı yöntemler ve Özellikler'i uygulayın.

  5. Özel çakışma giderici kitaplık dosyası oluşturmak için bir proje oluşturun.

  6. Birleştirme Aracısı yürütülebilir (genellikle \Microsoft SQL Server\100\COM) içeren dizinin kitaplığında dağıtın.

    Not

    çekme temelli abonelik için abonelik, dağıtımcı bir gönderme temelli abonelik sırasında veya Web sunucusu ile Web üzerinden eşitleme için kullanılan özel çakışma giderici dağıtılması gerekir.

  7. Regsvr32.exe dağıtım dizininden gibi kullanarak özel çakışma giderici kitaplığı kaydolun:

    regsvr32.exe mycustomresolver.dll
    
  8. Yayımcı tarafında yürütmek sp_enumcustomresolvers (Transact-SQL) Kitaplık zaten özel çakışma giderici kaydedilmemiş doğrulamak için .

  9. Kitaplık, özel çakışma giderici kaydetmek için , yürütmek sp_registercustomresolver (Transact-SQL), en dağıtımcı. COM nesnesi için kolay adını belirtin. @ article_resolver için kitaplığın KIMLIĞI (CLSID)@ resolver_clsid) ve değeri false için @ is_dotnet_assembly.

    Not

    Artık gerekmediğinde, özel çakışma giderici kullanarak bir kaydı olabilir sp_unregistercustomresolver (Transact-SQL).

  10. (Isteğe bağlı) Bir kümede adımları 5-8, kümenin tüm düğümlerinde özel çözümleyici kaydetmek için yineleyin.Bu, özel Çözümleyicisi düzgün yerine çalışma aşağıdaki reconciler yüklemek için olmasını sağlamak için gereklidir.

Yeni bir tablo makale özel çakışma giderici kullanmak için

  1. Yayımcı tarafında yürütmek sp_enumcustomresolvers (Transact-SQL) ve istenen çözümleyici kolay adını not alın.

  2. yayın veritabanı Yayımcı tarafında yürütmek sp_addmergearticle (Transact-SQL) makale tanımlamak için . Makale çözümleyici için adım 1'den kolay adını belirtin. @ article_resolver.Daha fazla bilgi için bkz: Nasıl Yapılır: Bir makale (çoğaltma Transact-SQL programlama) tanımlayın..

Özel çakışma giderici içeren varolan bir tabloyu makale kullanmak için

  1. Yayımcı tarafında yürütmek sp_enumcustomresolvers (Transact-SQL) ve istenen çözümleyici kolay adını not alın.

  2. yürütmek sp_changemergearticle (Transact-SQL), belirtme @ yayın, @ makale değeriarticle_resolver for @ özellikve için adım 1'deki makaleyi çözümleyici kolay adıdeğer.