Excel VBA'dan çağrılabilmemiz için, com interop ile ortaya koymak istediğim bazı C# kodları var. Birçok iç içe toplu güncelleştirme işlemi gerçekleştireceğinden, işlemleri desteklemem gerekiyor ve C# düzeyinde gerekli refakatörü en aza indirgemek için TransactionScope yaklaşımını kullanmak istiyorum:Excel VBA'dan bir TransactionScope başlatılıyor mu?
İşlem Kapsamı Kullanarak Kapalı Bir İşlemin Uygulanması
http://msdn.microsoft.com/en-us/library/ms172152.aspx
TransactionScope sınıf işlem kendisi ile etkileşime gerek kalmadan, bir işlem katılma gibi kod bloğu işaretlemek için basit bir yol sağlar. Bir işlem kapsamı 'u seçebilir ve ortam işlemini otomatik olarak yönetebilir. kullanım kolaylığı ve verimliliği nedeniyle, bir işlem uygulaması geliştirirken TransactionScope sınıfını kullanmanız önerilir. Ayrıca, işlemiyle açık bir şekilde kaynakları listelemenize gerek yoktur. Herhangi bir System.Transactions kaynak yöneticisi (SQL Server 2005 gibi), kapsam tarafından oluşturulan ve otomatik olarak listelenen ortam işleminin varlığını algılayabilir .
Sorum şu: VBA kodu içinde TransactionScope başlatabilir (veya birlikte çalışma örneğini ve TransactionScope nesneyi döndürmek için COM yoluyla AC# yöntemini çağırın) ve sonra çeşitli diğer C# nesneleri aramak devam etmek mümkündür COM Interop ile, tüm otomatik olarak tek kök işlemine katılacak mı?
Hayır, kesinlikle VBA'da bunu yapamazsınız. –
Ayrıntılı bilgi verebilir misiniz? (Umarım bir negatif olduğunu sormuyorum) – tbone
Cevabımı sildim çünkü TransactionScope'un C# ne olduğunu ve VBA'da ne olacağını anlamak için aynı sayfada olduğumuzu düşünmüyorum. ADODB, bir İşlem sırasında herhangi bir değişikliği geri almak için mekanizmayı uygular, ancak bir TransactionScope'ta herhangi bir VBA kodunun bir bloğunu kapatamaz ve İşlem başarısız olursa ... –