Düzeltme: Oracle için Microsoft ODBC sürücüsü ile Embedded ayraç Client Cursor üzerinde başarılı değil

Makale çevirileri Makale çevirileri
Makale numarası: 292604 - 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

Bir istemci tarafı imleci kullandığınızda karşı bir Oracle veritabanı ile Microsoft ODBC Driver for Oracle, ertelenen bir güncelleştirme başarısız olur ve aşağıdaki hata iletisini alırsınız:
0x80004005 ("Güncelleştirme veya yenileme için yetersiz temel tablo bilgileri")
Bu, SQL SELECT deyimi, katıştırılmış bir parantez içeren bir WHERE yan tümcesi içeriyorsa oluşur. Recordset, WHERE yan tümcesi, parantez ve dize ölçüt yerleştirin, ölçütü içeren ayraçlar sorun yalnızca bir istemci tarafı imleç oluşur.

Neden

ActiveX Data Objects (ADO) istemci imleç altyapısı başarıyla ifade ayrıştırmaz ve kayıt kümesi güncelleştirilemez.

Çözüm

Bu sorunu gidermek için <a0></a0>, Microsoft, MDAC 2.5 için en son hizmet paketini edinin. 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 düzeltmenin İ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     Platform
   ----------------------------------------------------------------
   03-07-2001   2.53.7307     327,952  Msadce.dll    x86
				

Durum

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

Daha fazla bilgi

Sorun Microsoft OLE DB ile oluşuyor <a1>Sağlayıcı</a1> için Oracle'nın (MSDAORA).

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

  1. Bir yeni Microsoft Visual Basic 6.0 standart exe DOSYASı oluşturma Project. Varsayılan olarak, Form1 oluşturulur.
  2. Proje menüsünde Başvurular ' ı tıklatın ve sonra Microsoft ActiveX Data Objects 2.5 başvuru ekleme kitaplığı.
  3. Form1 Form_Load olay aşağıdaki kodu yapıştırın:
    
    
      Dim con As ADODB.Connection
      Dim rst As ADODB.Recordset
      
      Set con = New ADODB.Connection
      With con
        .CursorLocation = adUseClient
        .ConnectionString = "Provider=MSDASQL.1;UID=MyUser;PWD=MyPwd;DRIVER={Microsoft ODBC for Oracle};SERVER=MyServer;"
        .Open
      End With
      
      Set rst = New ADODB.Recordset
      With rst
        .ActiveConnection = con
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        'This one fails!
        .Source = "SELECT MyKey,UpdateVal,LookUpVal FROM UpdateTest WHERE (LookUpVal = 'Test2(Test2')"
        'This one works!
            '.Source = "SELECT MyKey,UpdateVal,LookUpVal FROM UpdateTest where LookUpVal='Test1'"
        .Open
      End With
      
      rst.Fields(1).Value = 200
      rst.Update
    					
  4. Oracle için bağlanmak için bağlantı dizesini değiştirin sunucu.
  5. Bir Sınamaınternet tablosu MyKey (birincil anahtar) UpdateVal ve LookUpVal ile oluşturun.
  6. Iki satır aşağıda gösterildiği gibi ekleyin:
    • Ilk kayda LookUpVal içeren = Test2(Test2
    • Ikinci kaydı LookUpVal içeren Test1 =

  7. Proje başlatın.

Özellikler

Makale numarası: 292604 - Last Review: 24 Şubat 2014 Pazartesi - Gözden geçirme: 3.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5 Service Pack 2
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kboracle kbwin2000sp3fix KB292604 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:292604

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