Ich verwende eine OleDbConnection, OldDbCommand und OleDbReader gegen eine Access-Datenbank.Was verursacht meine OLEDbException, IErrorInfo.GetDescription fehlgeschlagen mit E_FAIL (0x80004005)
Ich habe eine benannte Abfrage in der Datenbank, die ich aus dem Code aufrufen.
Die Abfrage funktioniert ordnungsgemäß, wenn sie vom Zugriff ausgeführt wird.
Mehrere Ressourcen weisen darauf hin, dass der Fehler durch die Verwendung von reservierten Wörtern in der Abfrage und deren Umbruch in Klammern verursacht werden kann. Ich verwende keine reservierten Wörter und habe trotzdem alle Spaltennamen in Klammern eingeschlossen, um dies auszuschließen.
zu bestimmen versuchen, wo das Problem ist, habe ich die Abfrage zu einem einfachen
SELECT id FROM table1 WHERE id = 5
vereinfacht, die die Ole-Verbindung keine Ausnahme werfen.
Wenn ich den nächsten Teil der Abfrage vorstellen:
SELECT table1.id FROM table1 INNER JOIN storedQuery ON table1.id = storedQuery.id WHERE table1.id = 5"
dann bekomme ich die Ausnahme.
Die Ausnahme Details sind wie folgt:
- Message: IErrorInfo.GetDescription failed with E_FAIL(0x80004005).
- ErrorCode: -2147467259
- NativeError: -533136361
- SQLState: 3000
Out von Neugier, was war das reservierte Schlüsselwort in der Abfrage, die fehlgeschlagen ist? – DaveInCaz
Vor zu vielen Jahren, um sich daran zu erinnern .. Der wichtige Teil für mich war herauszufinden, dass es verschiedene Reservewörter gibt, je nachdem, wie Sie die gespeicherten Abfragen aufrufen –