Düzeltme: Nonvariant veri türlerini getirilirken, ADO Errors bastırır

Makale çevirileri Makale çevirileri
Makale numarası: 274423 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Satır kümesi değerleri nonvariant veri türlerini alma, ActiveX Data Objects (ADO) hizmet (SRV) kaydı başka bir kullanıcı tarafından kilitlendi bildirimler gibi kayıt durumunu ilgili hataları bastır.

Bu sorun ortaya çıkar, Microsoft Data Access Components (MDAC) sürüm 2.50.4403.12 (Microsoft Windows 2000/MDAC 2.5 RTM) ve 2.51.5303.5 (Windows 2000/MDAC 2.5 SP1). MDAC sürümünde bu sorun ortaya çıkmaz 2.60.6526.3 (MDAC 2.6 RTM).

Neden

Biraz farklı bir kod yolu, varyant veri türleri ile uygulama mi alınıyor bağlı alınır. Türevleri kullanımını hata bilgileri yeteneği olan bir iç bağlamı nesnesi içinde sarılır. Nonvariants, bu içerik sarmalayıcı olan ve hata bilgilerini döndürmüyor.

Çözüm

Bu sorunu gidermek için <a0></a0>, Microsoft Data Access Components en son hizmet paketini edinin... 2.5. Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
293312BILGI: son MDAC 2.5 nasıl elde edilir hizmet paketi
Bu güncelleştirmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yenisi) 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 aracında saat dilimi sekmesini kullanın.
   Date       Version        Size             File name
   ----------------------------------------------------------
   8/29/2000  2.51.5629.0     20,480 bytes    Msader15.dll
   8/29/2000  2.51.5629.0    487,696 bytes    Msado15.dll
   8/29/2000  2.51.5629.0    172,304 bytes    Msadomd.dll
   8/29/2000  2.51.5629.0     57,616 bytes    Msador15.dll
   8/29/2000  2.51.5629.0    184,592 bytes    Msadox.dll
   8/29/2000  2.51.5629.0     57,616 bytes    Msadrh15.dll
   8/29/2000  2.51.5629.0     94,480 bytes    Msjro.dll
				

Geçici Çözüm

Bu sorunla ilgili yok bir geçici çözüm vardır.

Durum

Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır. Bu sorun ilk olarak Microsoft Data Access Components 2.5 Service Pack 2'de giderilmiştir.

Daha fazla bilgi

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

  1. Aşağıdaki kod bir Visual Basic projesi kopyalayın:

    NotUID <username>değiştirmelisiniz değeri ve PWD bu kodu çalıştırmadan önce = < güçlü parola > değeri için doğru değerler. UID, veritabanında bu işlemi gerçekleştirmek için uygun izinlere sahip olduğundan emin olun.
    Dim cn As ADODB.Connection, cnOtherUser As ADODB.Connection
    Dim rs As ADODB.Recordset, rsOtherUser As ADODB.Recordset
    Dim strConn As String, strSQL As String
    Dim varData As Variant, intData As Integer
    
    strConn = "Provider=MSDASQL;Driver={SQL Server};Server=YourServer;Database=Northwind;UID=<user name>;PWD=<strong password>;"
    strSQL = "SELECT * FROM Customers"
    
    Set cnOtherUser = New ADODB.Connection
    cnOtherUser.Open strConn
    Set rsOtherUser = New ADODB.Recordset
    rsOtherUser.Open strSQL, cnOtherUser, adOpenKeyset, adLockPessimistic, adCmdText
    rsOtherUser.MoveFirst
    
    Set cn = New ADODB.Connection
    cn.Open strConn
    cn.CommandTimeout = 10
    Set rs = New ADODB.Recordset
    rs.Open strSQL, cn, adOpenKeyset, adLockPessimistic, adCmdText
    If MsgBox("Use Variant?", vbYesNo) = vbYes Then
        On Error Resume Next
        varData = rs(0)
        If Err.Number <> 0 Then
            MsgBox Err.Description
            Err.Clear
            cn.Errors.Clear
        Else
            MsgBox "No error!"
        End If
        On Error GoTo 0
    Else
        On Error Resume Next
        intData = rs(0)
        If Err.Number <> 0 Then
            MsgBox Err.Description
            Err.Clear
            cn.Errors.Clear
        Else
            MsgBox "No error!"
        End If
        On Error GoTo 0
    End If
    rs.Close
    cn.Close
    
    rsOtherUser.Close
    cnOtherUser.Close
    					
  2. Bir başvuru için Microsoft ActiveX Data Objects 2.5 kitaplığı.
  3. Kodu çalıştırın ve istendiğinde bir Variant'ı kullanmak için Evet ' i seçin. Dikkat bir "Zaman aşımı doldu" hata iletisi döndürülür, kayıtları belirtilen süre miktarını getirilemedi gösteren.
  4. Kod'nı yeniden çalıştırın ve bu zaman bir Variant'nı kullanmak isteyip istemediğiniz sorulduğunda Hayır seçeneğini belirleyin. Bu süre, geçerli kayıt yoktur, ancak, zaman aşımı aştı bir gösterge yoktur bildiren bir hata döndürülür.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
247757Düzeltme: Parametreli komut gelen ADO kullanarak bağlantı sızıntısı
264442Düzeltme: ADO Recordset, sıraya, süzgeç özellik kaybettiğinde-Proc
264701Düzeltme: ADO Recordset ByRef gönderme hata bilgileri sıfırlar

Özellikler

Makale numarası: 274423 - Last Review: 24 Şubat 2014 Pazartesi - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.5 Service Pack 1
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbado250fix kbbug kbfix kbmdac250fix kbqfe KB274423 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:274423

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