ASP, vrací chybu "Operace musí použít aktualizovatelný dotaz."

Překlady článku Překlady článku
ID článku: 175168 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Následující běžné chyby mohou nastat při použití datové objekty ActiveX (ADO) s Active Server Pages (ASP):
Microsoft OLE DB Provider pro ovladače ODBC chyba '80004005'
[Microsoft][Ovladač ODBC aplikace Microsoft Access 97] Operace musí použít aktualizovatelný dotaz.

Příčina

Tento článek popisuje čtyři primární příčiny této chyby a odpovídající řešení. Přestože tento článek odkazuje k databázím Microsoft Access, zde uvedené informace platí také pro jiné typy databází.

Řešení

Tato chyba obvykle zjištěna, když skript se pokusí provést AKTUALIZACE nebo jiné akce, který mění informace v databázi. K této chybě dochází, protože nelze zapisovat do databáze jednoho z objektů ADO z následujících důvodů:

  1. Nejčastější příčinou je, že účet Internet Guest (IUSR_MACHINE), která je ve výchozím nastavení součástí "" skupinu Everyone, nemá oprávnění k zápisu pro soubor databáze (MDB). Chcete-li tento problém vyřešit, pomocí karty zabezpečení v aplikaci Explorer upravit vlastnosti tohoto souboru tak, aby byl správný účet Guest na Internetu oprávnění.

    POZNÁMKA:: Při použití databází aplikace Microsoft Access s objekty ADO, je také nezbytné udělit oprávnění k zápisu účtu Internet Guest na adresář obsahující soubor MDB. Je to proto, že Jet vytvoří soubor LDB zpracování uzamčení databáze. Můžete také udělit oprávnění pro čtení i zápis do složky "Temp", protože Jet může vytvářet dočasné soubory v tomto adresáři.
  2. Druhá příčina této chyby je, že databáze nebyl otevřen s správný režim pro zápis. Pokud provádíte otevřít připojení objekt, použijte vlastnost režim zda oprávnění na připojení, jak je znázorněno zde:
    
          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
    
    						
    POZNÁMKA:: Ve výchozím režimu nastavena na 0(adModeUnknown), který obecně umožňuje aktualizace.
  3. Další příčinou této chyby je, že může být nastavení "Pouze pro čtení" zkontrolovat na stránce Možnosti pro tento zdroj dat DSN správce ODBC.
  4. Poslední problému a řešení se vztahuje k jakékoli zdroje dat SQL. Chyby mohou být způsobeny příkazů SQL, které porušují referenční integritu databáze. Zde je několik nejčastějších dotazů, které selhání:
    • Nejjednodušší skupiny řešit jsou nelze změnit: křížové tabulky, Akce předávací, unie, nebo aktualizovat (nebo vytvářecí) SQL dotazy mít vlastnosti UniqueValue nastavena na hodnotu Ano.

    • Další velmi běžnou příčinou je při spojení zahrnuje propojené tabulky ODBC jedinečné indexy nemají. V tomto případě neexistuje žádný způsob pro SQL zaručit, že jsou záznamy v tabulce, která má jedinečné pole, jehož hodnota se bude měnit s dotazem.

    • Jednou z příčin mají robustní řešení. Pokud se pokusíte aktualizovat spojení pole na straně "1", "1 n" dotazu se nezdaří, pokud Zapnutí kaskádové aktualizace. Tímto způsobem můžete delegovat referenční integrita stroje JET.

Prohlášení

Toto chování je záměrné.

Vlastnosti

ID článku: 175168 - Poslední aktualizace: 23. dubna 2011 - Revize: 6.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Active Server Pages 4.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Klíčová slova: 
kbdatabase kberrmsg kbprb kbmt KB175168 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:175168

Dejte nám zpětnou vazbu

 

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