Düzeltme: .NET Framework 2.0 veri kaynağındaki desteklenmeyen bir hareket yalıtım düzeyine belirttiğinizde OdbcConnection nesne hata bildirmiyor

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

Bu Sayfada

Belirtiler

Şu senaryoyu inceleyin. Microsoft .NET Framework veri sağlayıcısı için .NET Framework 2. 0'da ODBC uygulamanızda bir veri kaynağına bağlanmak için kullandığınız. Sonra bir hareketi başlatmak için <a1>ııswebdirectory</a1> OdbcConnection nesnesinin BeginTransaction yöntemini kullanın. Hareket için veri kaynağı olarak desteklenen bir hareket yalıtım düzeyini belirt. Bu senaryoda beklendiği gibi OdbcException özel durum ortaya çıkmaz. Ancak, .NET Framework 1.1 kullandığınızda beklendiği gibi özel durum oluşur.

Neden

BeginTransaction yöntemi, ODBC hatası (SQL_ERROR) bildirmiyor bu sorun oluşur, SQLSetConnectAttr döndürür işlev. ODBC için .NET Framework veri sağlayıcısı varsayılan hareket yönetimi modunu autocommit modudur. Veri sağlayıcısı, hareket yalıtım düzeyine doğru olarak ayarlandığında yalnızca Autocommit modunu kapatır. Bu nedenle, bir yanlış hareket yalıtım düzeyine belirtirseniz, hareket çalışmaz. Commit yöntemini veya Rollback yöntemini çağırırsanız, geçersiz kullanılırlar. Commit yöntemini ve Rollback yöntemini, ODBC hatası (SQL_ERROR) bildirmez.

Çözüm

Desteklenen bir düzeltme Microsoft'tan edinilebilir. Ancak, düzeltmenin yalnızca bu makalede anlatılan sorunu gidermesi amaçlanmıştır. Düzeltmeyi yalnızca bu sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltmeye ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki NET Framework 2.0 hizmet paketini beklemenizi öneririz.

Bu sorunu hemen çözmek için, düzeltmeyi edinmek üzere Microsoft Müşteri Destek Hizmetleri'ne başvurun. Microsoft Müşteri Destek Hizmetleri'nin telefon numaralarının tam listesi ve destek ücretleriyle ilgili bilgi için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözümleyeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

ÖNKOŞULLAR

Bu düzeltmeyi uygulamak için <a0></a0>, bilgisayarınızda yüklü olan aşağıdaki Microsoft Bilgi Bankası makalesinde açıklanan dosya desteği Microsoft olmalıdır:
916002Düzeltme: SqlClient sınıfı, bir SQL Server 2005 örneğine bağlanmak için ADO.NET 2.0 tabanlı bir uygulamada kullanmaya çalıştığınızda hata iletisi: "yeni istek geçerli işlem tanımlayıcısını gelen çünkü başlatmaya izin verilmez"

Yeniden başlatma gereksinimi

Bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez.

Kayıt defteri Bilgileri

Kayıt defterini değiştirmeniz gerekmez.

Düzeltme Dosyası Bilgileri

Bu düzeltme, yalnızca bu makalede listelenen sorunları düzeltmek için gerekli olan dosyaları içerir. Bu düzeltme, bir ürünü için en son sürüme tam güncelleştirmek için gereken dosyaların tümünü içermeyebilir.Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve saat öğesinde saat dilimi sekmesini kullanın.

.NET framework 2.0 ve 32-bit sürümü

Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Mscordacwks.dll2.0.50727.158800,76824 Mayıs 200614: 59X86
Mscorlib.dll2.0.50727.1584,317,18424 Mayıs 200614: 59X86
Mscorwks.dll2.0.50727.1585,623,29624 Mayıs 200614: 59X86
Sos.dll2.0.50727.158377,34424 Mayıs 200614: 59X86
System.data.dll2.0.50727.1582,893,82424 Mayıs 200614: 59X86

.NET framework 2.0 x 64 tabanlı sürümü

Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Mscordacwks.dll2.0.50727.1581,597,44024 Mayıs 200606: 09X64
Mscorlib.dll2.0.50727.1583,956,73624 Mayıs 200611: 25X64
Mscorwks.dll2.0.50727.15810,306,04824 Mayıs 200606: 05X64
Sos.dll2.0.50727.158476,16024 Mayıs 200606: 15X64
System.data.dll2.0.50727.1582,959,87224 Mayıs 200611: 25X64

.NET framework 2.0 ıtanium mimarisi sürümü (ingilizce)

Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Mscordacwks.dll2.0.50727.1582,710,01624 Mayıs 200606: 14IA-64
Mscorlib.dll2.0.50727.1583,956,73624 Mayıs 200612: 03IA-64
Mscorwks.dll2.0.50727.15821,260,28824 Mayıs 200606: 11IA-64
Sos.dll2.0.50727.158857,08824 Mayıs 200606: 22IA-64
System.data.dll2.0.50727.1583,102,20824 Mayıs 200612: 03IA-64

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, doğru bir hareket yalıtım düzeyine kullandığınızdan emin olun. Uygulama işlem düzeyi doğru olup olmadığını denetleyin ve kodunuzda bir özel durum kodu ekleyebilirsiniz.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

Microsoft SQL Server güncelleştirmelerinin adlandırma şeması hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
822499Microsoft SQL Server yazılım güncelleştirme paketlerinin yeni adlandırma şeması

Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Daha fazla bilgi

Bu sorun, Rollback yöntemini kullanamadığından veri bozulmasına neden olabilir. Örneğin, bir yanlış işlem düzeyi de belirtebilirsiniz. Bir geri alma, veri bozulması oluşuyor ortaya beklediğiniz. Ancak, geri alma oluşmaz. Commit yöntemini hata raporu, verileri beklendiği gibi kaydedilmiş verilmemiş, çünkü veri bozulması oluşabilir.

Sorunu Yeniden Oluşturma Adımları

  1. Bir Microsoft Access veri dosyası (.mdb) oluşturmak ve sonra da iki sütun içeren bir tablo oluşturun. Veri dosyası d:\db1.mdb klasörüne kaydedilir ve tablo adı, T1 olduğunu varsayalım. Iki sütun C1 ve C2 adlı varsayalım.
  2. Bazı kayıtlar, T1 tabloya yerleştirin.
  3. Microsoft Visual Studio 2005'i kullanarak, C# projesi oluşturun ve aşağıdaki kodu bir yöntem. yapıştırın
    string cnstr = @"Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\db1.mdb;UID=Admin;PWD=;"
    OdbcConnection cn = new OdbcConnection(cnstr);
    cn.Open();
    System.Diagnostics.Debug.WriteLine("connected.");
    
    try
    {
    OdbcTransaction trn = cn.BeginTransaction(IsolationLevel.ReadUncommitted);
    OdbcCommand cmd = new OdbcCommand("select * from T1", C1, C2);
    OdbcDataReader dr;
    dr = cmd.ExecuteReader();
    while (dr.Read())
    {
    System.Diagnostics.Debug.WriteLine(dr[1].ToString());
    }
    dr.Close();
    trn.Commit();
    }
    catch (OdbcException odbcex)
    {
    System.Diagnostics.Debug.WriteLine(odbcex.Message);
    System.Diagnostics.Debug.WriteLine(odbcex.StackTrace);
    }
    cn.Close();
    cn = null;
    
  4. Uygulamayı çalıştırın ve yöntem aradığınız emin olun.
Bu adımları tamamladıktan sonra hiçbir özel durum oluştuğunu görürsünüz.

Özellikler

Makale numarası: 917752 - Last Review: 3 Aralık 2007 Pazartesi - Gözden geçirme: 3.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 2.0
Anahtar Kelimeler: 
kbmt kbprb kbtshoot kbexpertiseadvanced KB917752 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:917752

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