Używam OleDbConnection, OldDbCommand i OleDbReader przeciwko bazy danych Access.Co jest przyczyną mojego wyjątku OLEDbException, IErrorInfo.GetDescription nie powiodło się z E_FAIL (0x80004005)
Mam kwerendę o nazwie w bazie danych, który wywołuję z kodu.
Zapytanie działa poprawnie, gdy jest uruchamiane z dostępu.
Kilka zasobów wskazuje, że błąd mógł zostać spowodowany przez użycie słów zarezerwowanych w zapytaniu i zawinięcie ich za pomocą nawiasów. Nie używam żadnych zarezerwowanych słów i zawinąłem w nawiasie wszystkie nazwy kolumn, aby je wykluczyć.
Próbując określić, gdzie problemem jest to, że są uproszczone zapytanie do prostego
SELECT id FROM table1 WHERE id = 5
którym połączenie Ole nie zgłasza wyjątek.
Kiedy wprowadzi kolejną porcję kwerendy:
SELECT table1.id FROM table1 INNER JOIN storedQuery ON table1.id = storedQuery.id WHERE table1.id = 5"
potem uzyskać wyjątek.
szczegóły Wyjątkiem są następujące:
- Message: IErrorInfo.GetDescription failed with E_FAIL(0x80004005).
- ErrorCode: -2147467259
- NativeError: -533136361
- SQLState: 3000
Out ciekawości, co było zastrzeżonym słowem kluczowym w zapytaniu, które się nie powiodło? – DaveInCaz
Zbyt wiele lat temu, aby pamiętać ... Ważną częścią dla mnie było dowiedzieć się, że istnieją różne słowa rezerwy w zależności od tego, w jaki sposób wywołuje przechowywane zapytania –