SQL Server için OLE DB sağlayıcı ile iç içe geçmiş bir işlem uygulamak için hata iletisi: "bir işlem için OLE DB sağlayıcı başlatılamadı"

Makale çevirileri Makale çevirileri
Makale numarası: 306649 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft OLE DB Provider for SQL Server iç içe geçmiş işlem desteği ve aşağıdaki hata iletisini döndürdü:
OLE DB Sağlayıcısı '% ls' için bir işlem başlatılamadı.
Sağlayıcı, bir SQL Server'a özgü sağlayıcı ise, Microsoft SQL Server da aşağıdaki hata iletisini döndürür:
Sunucu: 2, <a1>hata</a1> 7392, Düzey 16, durum
Bir hareket için OLE DB Sağlayıcısı 'SQLOLEDB' başlatılamadı. [OLE/DB sağlayıcı iletisini verdi: Bu oturumda yalnızca bir işlem etkin olabilir.]

Neden

Bu hata, bir veri değişikliği bildirimi karşı bir OLE DB Sağlayıcısı bağlantı açık veya örtülü bir işlem içinde olduğunda ve OLE DB sağlayıcı iç içe geçmiş işlem desteği denenir olduğunu gösterir. Belirli hata koşullara göre hareketin devam ederken veri değişikliği bildirimi etkilerini sonlandırmak böylece, SQL Server bu desteği gerektirir.

Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, önce hareket ON XACT_ABORT ayarlayın. Bu veri değişikliği bildirimi işlerken bir hata ortaya çıktığında, çevreleyen işlem sona erdirmek, SQL Server neden olur. SET XACT_ABORT AÇıK ise, SQL Server OLE DB sağlayıcı iç içe geçmiş hareket destek gerektirmez.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Davranışı yeniden oluşturma adımları

Bu örnek, OLE DB Provider for SQL Server XACT_ABORT etkisini açıklamak için kullandığı bir bağlantılı sunucu kullanır.
  1. SQL Server için Microsoft OLE DB Provider'ı kullanan Satış adlı bir bağlı sunucu oluşturmak için OLE DB Provider for SQL Server'ı kullanın.
    USE Master
    GO
    EXEC sp_addlinkedserver 
        'Sales',
        N'SQL Server'
    GO
    					
  2. Query Analyzer'ı açın ve aşağıdaki komutu çalıştırın.
    Begin Transaction
    Insert into Sales.Northwind.DBO.Customers(CustomerId,CompanyName) Values ('1000','Test')
    Commit Transaction
    					
    yukarıda belirtilen hata iletisini alırsınız.

    Geçici Çözüm

  3. ON XACT_ABORT ayarlamak için aşağıdaki komutu çalıştırın:
    Set XACT_ABORT ON
    					
  4. Ekle deyimini yeniden çalıştırın. Hatasız bir tabloya veri eklenir dikkat edin.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
177138BILGI: İç içe geçmiş hareketler ODBC/OLE DB/ADO yok
187289Nasıl YAPıLıR: Oracle ile iç içe geçmiş hareketler gerçekleştir

Özellikler

Makale numarası: 306649 - Last Review: 9 Aralık 2005 Cuma - Gözden geçirme: 4.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.6 Service Pack 1
Anahtar Kelimeler: 
kbmt kbprb KB306649 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:306649

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com