ASP vráti "Operácia musí použiť dotaz aktualizovateľný" chyba

Preklady článku Preklady článku
ID článku: 175168 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

PRIZNAKY

Tieto spoločné chyby sa môžu vyskytnúť pri použití ActiveX Data Objects (ADO) s Active Server Pages (ASP):
Poskytovateľa Microsoft OLE DB pre ovládače ODBC chybu "80004005"
[Microsoft][Ovládač ODBC Microsoft Access 97] Operáciu musí používať Aktualizovateľný dotazu.

PRICINA

Tento článok vysvetľuje štyri primárne príčiny tejto chyby a zodpovedajúce riešenia. Hoci tento článok odkazuje na databázu programu Microsoft Access, informácie uvedené tu, platí aj pre iné typy databáz.

RIESENIE

Táto chyba sa zvyčajne vyskytuje, keď váš skript sa pokúša vykonať Aktualizácia alebo nejakú inú akciu, ktorá mení informácie do databázy. Táto chyba sa vyskytuje, pretože ADO nie je možné zapisovať do databázy pre jednu z z týchto dôvodov:

  1. Najčastejším dôvodom je, že Internet hosťovské konto (IUSR_MACHINE), ktorá je predvolená časť „"skupina Everyone, nemá povolenie na zápis na databázový súbor (.mdb). Tento problém, použite kartu zabezpečenie Explorer chcete upraviť vlastnosti pre tento súbor tak, že Internet hosťovské konto má správne povolenia.

    POZNÁMKA: Pri používaní databázy programu Microsoft Access s ADO, je takisto potrebné dať Internet hosťovské konto zápis adresára obsahujúceho súbor .mdb. Je to spôsobené Jet vytvorí súbor .ldb zvládnuť databázy blokovania. Tiež musíte dať povolenie čítať a zapisovať na priečinok "Temp", pretože Jet môže vytvoriť dočasné súbory v tomto adresári.
  2. Druhá príčina tejto chyby je, že databáza nebola otvorená s správny režim pre písanie. Ak vykonávate otvoriť na pripojenie objekt, použijete vlastnosť režim uvádzať povolenia na pripojenie, ako je to znázornené nižšie:
    
          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: V predvolenom nastavení režimu je nastavená na 0(adModeUnknown), ktoré vo všeobecnosti umožňuje aktualizácie.
  3. Ďalšou príčinou tejto chyby je, že môže byť nastavenie „len na čítanie" skontrolovať v možnostiach stránku tomuto DSN v správcu ODBC.
  4. Posledné vydanie a obísť patrí akýkoľvek zdroj údajov SQL. Chyba môže byť spôsobená príkazy SQL, ktoré narušili referenčnú integritu pre databáza. Tu sú niektoré z najčastejších dotazy, ktoré zlyhajú:
    • Najjednoduchšie skupín zaoberať sú tie nemôžete zmeniť: krížový, SQL premietnutia, únie, alebo aktualizácia (alebo vytvárací) akcia dotazy, ktoré majú UniqueValue vlastnosti nastavená na hodnotu Áno.

    • Ďalším veľmi spoločným príčinou je, keď spojenie zahŕňa prepojenej tabuľky ODBC ktoré nemajú jednoznačné registre. V tomto prípade neexistuje spôsob, ako pre SQL zaručiť, že záznamy sú v tabuľke, ktorý má jedinečný polia, ktorých hodnota sa bude meniť s dotaz.

    • Jedna príčina nemá robustné riešenie. Ak chcete aktualizovať spojenie pole na strane „"one" "one-to-many" dotazu sa nepodarí, pokiaľ musíte zapnúť kaskádových aktualizácií. Týmto spôsobom môžete delegovať referenčnú integrity JET engine.

STAV

Toto správanie je predvolené.

Vlastnosti

ID článku: 175168 - Posledná kontrola: 18. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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
Kľúčové slová: 
kbdatabase kberrmsg kbprb kbmt KB175168 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:175168

Odošlite odozvu

 

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