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

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.

292604
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
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.
Informationsquellen

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 292604 – Letzte Überarbeitung: 02/24/2014 15:31:25 – Revision: 3.2

  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5 Service Pack 2
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kboracle kbwin2000sp3fix KB292604 KbMtde
Feedback