Update: Microsoft ODBC-Treiber für Oracle ist nicht erfolgreich auf Client-Cursor mit Embedded Klammer

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 292604 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Beim Verwenden eines clientseitigen Cursors mit einem Oracle-Datenbank mit der Microsoft ODBC-Treiber für Oracle eine verzögerte Aktualisierung nicht erfolgreich ist und Sie erhalten folgende Fehlermeldung:
0 x 80004005 ("nicht genügend Basistabelle Informationen für aktualisieren oder aktualisieren")
Dies geschieht, wenn die SQL SELECT-Anweisung eine WHERE-Klausel enthält, die eine eingebettete Klammer hat. Das Problem tritt nur mit einem clientseitigen Cursor auf, wenn die Kriterien in die WHERE-Klausel das Recordset in Klammern und die Zeichenfolge Kriterien eingesetzt wird Klammern enthält.

Ursache

(ActiveX Data Objects) Client Cursor Engine analysiert die Anweisung nicht erfolgreich, und das Recordset kann nicht aktualisiert.

Lösung

Installieren Sie das neueste Servicepack für Microsoft MDAC 2.5, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
293312INFO: Wie erhalten Sie die neueste MDAC 2.5 Servicepack
Die englische Version dieses Updates weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time () angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.
   Date         Version       Size     File name     Platform
   ----------------------------------------------------------------
   03-07-2001   2.53.7307     327,952  Msadce.dll    x86
				

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt. Dieses Problem wurde erstmals in Microsoft MDAC 2.5 Servicepack 3.

Weitere Informationen

Das Problem tritt nicht auf, mit dem Microsoft OLE DB Provider für Oracle (MSDAORA).

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie eine neue Microsoft Visual Basic 6.0 Standard EXE-Projekt. Standardmäßig wird jetzt Form1 erstellt.
  2. Im Menü Projekt klicken Sie auf Verweise , und fügen dann einen Verweis auf Microsoft ActiveX Data Objects 2.5 Library.
  3. Fügen Sie folgenden Code im Form_Load -Ereignis von Form1:
    
    
      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. Ändern Sie die Verbindungszeichenfolge Verbindung zu Ihrem Oracle-Server.
  5. Erstellen Sie eine Tabelle UpdateTest mit MyKey (Primärschlüssel), UpdateVal und LookUpVal.
  6. Fügen Sie zwei Zeilen wie folgt:
    • Ersten Datensatz enthält LookUpVal = Test2(Test2
    • Zweite Datensatz enthält LookUpVal = Test1

  7. Starten Sie das Projekt.

Eigenschaften

Artikel-ID: 292604 - Geändert am: Montag, 24. Februar 2014 - Version: 3.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5 Service Pack 2
Keywords: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kboracle kbwin2000sp3fix KB292604 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 292604
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

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