Chyba: "Chyba syntaxe v INSERT INTO..." na ADO Recordset.Update

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

Příznaky

Při volání metody metodu AddNew a při volání metody Update objektu Recordset je vrácena následující chyba:
Microsoft OLE DB Provider for ODBC Drivers chyba '80040e21
[Microsoft][Ovladač ODBC Microsoft Access 97] Chyba syntaxe v INSERT INTO výkazu.
Pomocí ovladače ODBC Microsoft Access version4.00.4202.00 nebo novější, je chybová zpráva:
Chyba při spuštění '-2147467259(80004005) ':
[Microsoft][Ovladač ODBC bude]Chyba syntaxe v příkaz INSERT INTO.

Příčina

K této chybě dochází, pokud následující platí:
  • CursorType je adOpenForwardOnly (0).
  • CursorLocation je adUseServer.
  • Pole aktualizované má mezery v názvu pole.
  • Používáte ovladače Microsoft Access ODBC.
Volání metod metodu AddNew a aktualizace na straně serveru, pouze vpřed kurzor je neplatná operace. ActiveX Data Objects (ADO) kompenzuje tento kód chyba generováním příkazu INSERT k provedení operace. Pokud ADO generuje příkazu INSERT, není vymezení názvy polí. Názvy polí, které obsahují mezeru proto generovat chybu syntaxe.

Například platný příkazu INSERT vypadat následovně:
   INSERT INTO Table ([field with space]) Values(value)
				
ADO generuje následující kód:
   INSERT INTO Table (field with space) Values(value)
				

Řešení

Zde je několik možných řešení:
  • Nepoužívejte mezery v názvech polí v databázi.
  • Použít CursorLocation adUseClient (3).
  • Nepoužívejte CursorType adOpenForwardOnly (0), jako například adOpenKeyset (1), adOpenDynamic (2) nebo adOpenStatic (3).
  • Chcete-li provést operaci, generování vlastní příkazu INSERT s oddělovače názvy polí namísto použití metody aktualizace a metodu AddNew.
  • Použijte zprostředkovatele Microsoft OLE DB pro Jet verze 3.51 nebo 4.0 namísto Microsoft OLE DB Provider pro ODBC a ovladače ODBC Microsoft Access.

Prohlášení

Společnost Microsoft potvrzuje, že se tuto chybu v produktech společnosti uvedených na začátku tohoto článku.

Vlastnosti

ID článku: 189220 - Poslední aktualizace: 2. března 2005 - Revize: 2.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Ovladač Microsoft Open Database Connectivity pro aplikaci Access 3.5
  • Ovladač Microsoft Open Database Connectivity pro aplikaci Access 4.0
Klíčová slova: 
kbmt kbbug kbdatabase kbdriver kbjet KB189220 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:189220

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