Aracılığıyla paylaş


Nasıl Yapılır: Uygulamanız bir iş mantığı işleyicisi için bir birleştirme makalesi (çoğaltma programlama)

The Microsoft.SqlServer.Replication.BusinessLogicSupport namespace implements an arabirim that enables you to write complex iş mantığı to handle events that occur during the birleştirme çoğaltma synchronization process. Yöntemleri iş mantığı işleyicisi eşitlemede çoğaltılır, değişen her satır için çoğaltma işlemi tarafından çağrılabilir.

Bir iş mantığı işleyicisi uygulamak için genel işlemidir:

  1. Iş mantığı işleyicisi derleme oluşturun.

  2. Derleme sırasında dağıtımcı kaydedin.

  3. dağıtmak derleme Birleştirme Aracısı çalıştığı sunucuda.çekme temelli abonelik için aracı abone üzerinde çalışır ve gönderme için abonelik aracı dağıtımcı üzerinde çalışır.Web üzerinden eşitleme kullanırken, aracı, Web sunucusu üzerinde çalışır.

  4. Iş mantığı işleyiciyi kullanan bir makale oluşturun ya da iş mantığını işleyicisi kullanmak için varolan bir makaleyi değiştirebilirsiniz.

Belirttiğiniz iş mantığı işleyicisi eşitlenir her satır için yürütülür.Karmaşık mantığına ve aramalar'ın diğer uygulamalara veya ağ hizmetleri performansı etkileyebilir.Iş mantığı işleyicileri hakkında daha fazla bilgi için bkz: Iş mantığı birleştirme eşitlemesi sırasında çalıştırma.

Bir iş mantığı işleyicisi dağıtmak için

  1. Içinde Microsoft Visual Studio'da .NET derlemesi için iş mantığı işleyicisi uygulayan kodunu içeren yeni bir proje oluşturun.

  2. Aşağıdaki ad boşlukları için proje başvuru ekleyin.

    Derleme başvurusu

    Konum

    Microsoft.SqlServer.Replication.BusinessLogicSupport

    C:\Program Files\Microsoft SQL Server\100\COM (varsayılan yükleme)

    System.Data

    GAC (.NET Framework bileşeni)

    System.Data.Common

    GAC (.NET Framework bileşeni)

  3. Geçersiz kılan bir Class BusinessLogicModule sınıf.

  4. Uygula HandledChangeStates() işlenen değişiklik türlerini belirtmek için özellik'ı tıklatın.

  5. Aşağıdaki yöntemlerden birini veya birkaçını geçersiz BusinessLogicModule sınıf:

    • CommitHandler(SourceIdentifier, Guid) -Eşitleme sırasında kabul edilen bir veri değişikliği olduğunda çağrılabilir.

    • DeleteErrorHandler(SourceIdentifier, DataSet, ErrorLogType%, String%, Int32, String, Int32%, String%) -karşıya veya karşıdan ise, DELETE deyim, bir hata oluştuğunda başlatıldı.

    • DeleteHandler(SourceIdentifier, DataSet, Int32%, String%) -DELETE deyimleri olan, çağrılan karşıya veya karşıdan.

    • InsertErrorHandler(SourceIdentifier, DataSet, ErrorLogType%, String%, Int32, String, Int32%, String%) -karşıya veya karşıdan olan bir INSERT deyim, bir hata oluştuğunda başlatıldı.

    • InsertHandler(SourceIdentifier, DataSet, DataSet%, Int32%, String%) -INSERT deyimleri olan, çağrılan karşıya veya karşıdan.

    • UpdateConflictsHandler(DataSet, DataSet, DataSet%, ConflictLogType%, String%, Int32%, String%) -çakışan bir UPDATE deyimi yayımcı ve abone oluştuğunda başlatıldı.

    • UpdateDeleteConflictHandler(SourceIdentifier, DataSet, DataSet%, ConflictLogType%, String%, Int32%, String%) -DELETE deyimleri yayımcı ve abonelik sırasında UPDATE deyimleri çakışmadığını çağırdı.

    • UpdateErrorHandler(SourceIdentifier, DataSet, ErrorLogType%, String%, Int32, String, Int32%, String%) -olan karşıya veya karşıdan yüklediğiniz bir UPDATE deyim, bir hata oluştuğunda başlatıldı.

    • UpdateHandler(SourceIdentifier, DataSet, DataSet%, Int32%, String%) -UPDATE deyimleri olan, çağrılan karşıya veya karşıdan.

  6. iş mantığı işleyicisi derleme proje oluşturun.

  7. Varsayılan yükleme için olan Birleştirme Aracısı yürütülebilir dosyası (replmerg.exe) içeren dizinin derlemede dağıtmak C:\Program Files\Microsoft SQL Server\100\COM veya .NET genel derleme önbelleğine (GAC) yükleyin. Birleştirme Aracısı'nın dışındaki uygulamaların erişmesi derlemesine, yalnızca derleme GAC'YE yüklemelisiniz.Derleme kullanarak genel derleme önbelleği aracını (GAC yüklenebilir.Gacutil.exe) .NET Framework SDK içinde sağlanan.

    Not

    Bir iş mantığı işleyicisi replisapi.dll Web üzerinden eşitleme kullanırken barındıran IIS sunucusunu içeren Birleştirme Aracısı çalıştığı, her sunucuda dağıtılması gerekir.

Kaydetmek için bir iş mantığı işleyicisi

  1. Yayımcı tarafında yürütmek sp_enumcustomresolvers (Transact-SQL) derleme zaten iş mantığı işleyicisi olarak kaydedilmemiş doğrulamak için .

  2. dağıtımcı sırasında yürütmek sp_registercustomresolver (Transact-SQL), kolay adını belirten iş mantığı işleyicisi için @ article_resolver değeritrue için @ is_dotnet_assembly için derleme adı**@ dotnet_assembly_name**ve geçersiz kılan sınıfının Tam adıBusinessLogicModule için @ dotnet_class_name.

    Not

    Birleştirme Aracısı yürütülebilir aynı dizinde derleme dağıtıldığında, uygulama ile aynı dizinde, zaman uyumlu olarak birleştirme aracı başlatır veya genel derleme önbelleği (GAC) için derleme adı ile tam yolunu belirtmeniz gerekir @ dotnet_assembly_name.Web üzerinden eşitleme kullanarak, Web sunucusu konumunda derleme konumunu belirtmeniz gerekir.

Yeni bir tablo makale bir iş mantığı işleyicisi kullanmak için

Varolan bir tabloyu makaleyle bir iş mantığı işleyicisi kullanmak için

Example

Bu örnekte gösterildiği bir iş mantığı işleyicisi bir denetim günlüğü oluşturur.

Aşağıdaki örnek, iş mantığı işleyicisi derleme sırasında dağıtımcı kaydeder ve bu özel iş mantığı kullanmak için bir birleştirme makale değiştirir.