ASP-Fehlermeldung "Die Operation muss eine aktualisierbare Abfrage verwenden"

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 175168 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
175168 ASP returns "Operation must use an updateable query" error
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Problembeschreibung

Beim Verwenden von ActiveX Data Objects (ADO) mit Active Server Pages (ASP) tritt möglicherweise häufig der folgende Fehler auf:
Fehler '80004005' bei Microsoft OLE DB-Provider für ODBC-Treiber
[Microsoft][ODBC Microsoft Access 97 Driver]Die Operation muss eine aktualisierbare Abfrage verwenden.

Ursache

Dieser Artikel erläutert die vier häufigsten Ursachen dieses Fehlers und beschreibt jeweils Möglichkeiten, ihn zu umgehen. Dieser Artikel bezieht sich zwar auf Microsoft Access-Datenbanken, jedoch treffen die Informationen auch auf andere Datenbanktypen zu.

Lösung

Dieser Fehler tritt normalerweise auf, wenn das Skript versucht, einen UPDATE-Vorgang oder einen anderen Vorgang auszuführen, der Informationen in der Datenbank ändert. Der Fehler tritt auf, weil ADO aus einem der folgenden Gründe in der Datenbank keinen Schreibvorgang durchführen kann:

  1. Die häufigste Ursache sind fehlende Schreibrechte für die Datenbankdatei (.mdb) auf dem Internet-Gastkonto ("IUSR_MACHINE"), das standardmäßig Mitglied der Gruppe "Jeder" ist. Zum Beheben dieses Problems stellen Sie in Explorer auf der Registerkarte Sicherheit die Eigenschaften der Datei so ein, dass das Internet-Gastkonto die richtigen Zugriffsrechte hat.

    Hinweis: Wenn Sie Microsoft Access-Datenbanken mit ADO verwenden, ist es außerdem erforderlich, dem Internet-Gastkonto Schreibrechte für das Verzeichnis zu geben, das die MDB-Datei enthält. Der Grund dafür ist die LDB-Datei, die von Jet zum Sperren der Datenbank erstellt wird. Möglicherweise müssen Sie auch Lese- und Schreibrechte für den Ordner "Temp" erteilen, da Jet u. U. temporäre Dateien in diesem Verzeichnis erstellt.
  2. Eine zweite mögliche Ursache für diesen Fehler ist, dass die Datenbank nicht im richtigen Modus (MODE) zum Schreiben geöffnet wurde. Beim Verwenden der Methode "Open" des Objekts "Connection" müssen Sie die Eigenschaft "Mode" zum Angeben der Zugriffsrechte für die Verbindung folgendermaßen verwenden:
    
          SQL = "UPDATE Products Set UnitPrice = 2;"
          Set Conn = Server.CreateObject("ADODB.Connection")
          Conn.Mode = 3      '3 = adModeReadWrite
          Conn.Open "myDSN"
          Conn.Execute(SQL)
          Conn.Close
    
    						
    Hinweis: Der standardmäßige Wert für MODE ist 0 (adModeUnknown), d. h., im Allgemeinen ist eine Aktualisierung der Datenbank möglich.
  3. Eine weitere mögliche Ursache für diesen Fehler ist die aktivierte Option "Schreibgeschützt" auf der Optionsseite dieser DSN im ODBC-Manager.
  4. Die letzte Möglichkeit kommt für SQL-Datenquellen in Betracht. Der Fehler kann durch SQL-Anweisungen ausgelöst werden, die die referenzielle Integrität der Datenbank verletzen. Dies sind einige der häufigsten SQL-Anfragen, die auf diese Weise fehlschlagen:
    • Am einfachsten verfahren lässt sich mit den Anfragen, die nicht geändert werden können: Kreuztabellen-, SQL-Pass-Through-, Union- oder Aktualisierungs-Abfragen (bzw. Tabellenerstellungs-Abfragen), bei denen die Eigenschaft "UniqueValue" auf "Ja" gesetzt ist.

    • Eine weitere häufige Ursache ist eine Verknüpfung mit Verweisen auf ODBC-Tabellen, die keine eindeutigen Indizes enthalten. In diesem Fall gibt es in SQL keine Möglichkeit zu garantieren, dass Datensätze in einer Tabelle eindeutig sind, deren Felder sich durch die Abfrage ändern.

    • Für eine der Ursachen gibt es eine verlässliche Methode zum Umgehen des Problems. Wenn Sie versuchen, ein Verknüpfungsfeld auf der linken Seite einer 1:n-Abfrage zu aktualisieren, schlägt die Abfrage fehl, wenn nicht kaskadierende Aktualisierungen aktiviert sind. Die referenzielle Integrität wird dann an JET delegiert.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Eigenschaften

Artikel-ID: 175168 - Geändert am: Freitag, 10. Februar 2006 - Version: 4.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Active Server Pages 4.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Keywords: 
kberrmsg kbdatabase kbprb KB175168
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.

Ihr Feedback an uns

 

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