Makale numarası: 269495 - Son Gözden Geçirme: 24 Kasım 2004 Çarşamba - Gözden geçirme: 3.1

SORUN: "birden fazla adımlı OLE DB işlem tarafından oluşturulan hataları" ADO bağlantısı açarken

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir ActiveX Data Objects (ADO) bağlantısını açmaya çalıştığınızda aşağıdaki hata iletisini alabilirsiniz:
Çalışma zamanı hatası '-2147217887 (80040e21): '

Birden fazla adımlı OLE DB işlemi hatalar oluşturdu. Varsa, her bir OLE DB durum değerini denetleyin. Hiçbir iş yapılmadı.

Neden

Bu hatanın iki olası nedenleri şunlardır:
  • Bir OLE DB sağlayıcısının CLSID, anahtarı altında kayıt defterindeki OLEDB_SERVICES adlı bir girdi olabilir. ADO bağlantı kurmak için kullanılan bir OLE DB sağlayıcısı OLEDB_SERVICES giriş yok ve sağlayıcı tarafından desteklenmeyen bir özelliği ayarlamak ADO çalışır, hata oluşur. Bu kayıt defteri girdisi hakkında daha fazla bilgi için "Çözüm" bölümüne bakın.
  • OLEDB_SERVICES girdi var, ancak bir sorun olduğunu ADO bağlantı dizesinde, hata oluşur.
OLEDB_SERVICES kayıt defteri girdisi yoksa, doğrudan sağlayıcıya bir özelliği ayarlamak için çağrı yapıldı. Sağlayıcı, özelliği desteklemiyorsa, ADO tarafından yapılan SetProperties OLE DB çağrı başarısız olacaktır. Özelliği, bağlantı yapmak için gerekli önemli bir hata budur. Özelliği, bağlantı dizesinde açıkça eklenmiştir, büyük olasılıkla gereklidir.

Özellik ayarı, isteğe bağlı ise, başarısızlık önemli değildir. Özellik açıkça bağlantı dizesine ayarlamadan bağlandığınızda böyledir. Bu durumda, ADO özelliği true olarak ayarlar, ancak bunu, isteğe bağlı olarak işaretler.

Çözüm

Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın:
  • ADO bağlantı dizesinde, "Security ınfo" anahtar sözcüğünü kullanmayın.
  • OLEDB_SERVICES kayıt defteri girdisini aşağıdaki şekilde ekleyin:

    Not Yalnızca, COM toplama desteği sağlayıcıları kayıt defteri anahtarlarındaki OLEDB_SERVICES değeri oluşturun. Exchange OLE DB sağlayıcısı COM toplama desteklemez ve bu değerleri oluşturduğunuzda, aşağıdaki hata iletisini alırsınız:
    0x80040E22
    NULL olmayan ıunknown denetimi belirtildi ve istenen arabirim ıunknown, değil veya sağlayıcı COM toplamayı desteklemiyor.

    Önemli Bu bölüm, yöntem veya görev kayıt defterini nasıl söyleyin adımları içerir. Ancak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle, bu adımları dikkatlice uyguladığınızdan emin olun. Ek koruma için, kayıt defterini değiştirmeden önce yedeklemeyi unutmayın. Bir sorun oluşursa kayıt defterini daha sonra geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme 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:
    322756  (http://support.microsoft.com/kb/322756/ ) Windows'da kayıt defterini yedekleme ve geri yükleme
    1. Kayıt Defteri Düzenleyicisi'ni başlatın.
    2. OLE DB sağlayıcısı CLSıD'SI HKEY_CLASSES_ROOT\CLSID altında kayıt defterindeki Bul. Örneğin, Microsoft OLE DB sağlayıcısı için SQL Server (SQLOLEDB için) aşağıdaki kayıt defteri anahtarı şöyledir:
      {0C7FF16C-38E3-11 d 0-97AB-00C04FC2AD98} hkey_classes_root\clsıd\
      CLSID ','ı tıklatın ve Düzen) menüsünde, Değer Ekle'yi tıklatın ve aşağıdaki kayıt defteri değerini ekleyin:
      Değer adı: OLEDB_SERVICES
      Veri türü: REG_DWORD
      Değer: 0xFFFFFFFF
      Not Kullanmakta olduğunuz sağlayıcısı için clsıd DEĞERINI bulmak için <a0></a0>, sağlayıcının Progıd (örneğin, SQLOLEDB) kayıt defterinde HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ altında arayın. Program kimliği altında CLSID adlı bir anahtar olacaktır.
  • Bu koşulları uygulandı ve bu hatayı almaya devam ederseniz, diğer bir olası hatalar için bağlantı dizenizde inceleyin.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

Aşağıdaki kodu bir proje başvurusu için Microsoft ActiveX Data Objects ayarlayın ve sonra çalışan bir Microsoft Visual Basic standart exe DOSYASı projede yapıştırın. DTSFlatFile sağlayıcı veya özelliklerinden bağlantı dizesinde, "Security ınfo" gibi desteklemeyen herhangi bir OLE DB sağlayıcısı kullanırsanız, hata oluşur.
Private Sub Command1_Click()

Dim cn As New Connection

cn.Open "Provider=DTSFlatFile;Persist Security Info=True;" & _
            "Data Source=Mysql;Mode=Read;File Format=0;File Type=1;" & _
            "Skip Rows=0;First Row Column Name=False;Number of Column=0;" & _
            "Max characters per delimited column=255;" '<------ Error Occurs Here
            
End Sub
				

Referanslar

Bu hata hakkında ek bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
228935  (http://support.microsoft.com/kb/228935/ ) Düzeltme: Başlatılmamış dize değişkenleri, boş bir dize değerlerini, Jet Sağlayıcısı ve hatalar oluştu.
253157  (http://support.microsoft.com/kb/253157/ ) Hata: Kimlik alan SET ıdentıty_ınsert ON deyimini yürüttükten sonra salt okunur kalır

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft ActiveX Data Objects 2.6
  • Microsoft ActiveX Data Objects 2.7
Anahtar Kelimeler: 
kbmt kbprb kbprovider KB269495 KbMttr
Otomatik TercümeOtomatik Tercüme
Ö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:269495  (http://support.microsoft.com/kb/269495/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.