2011-02-09 55 views
1

我的C#應用​​程序連接到Jet 4.0引擎。當我運行查詢「select * from open」(我認爲「open」是一個關鍵字,這就是爲什麼我得到一個異常,但...)我得到這個異常:「IErrorInfo.GetDescription失敗,E_FAIL(0x80004005 )」。我通常會得到更多人類可讀的異常,告訴我我的查詢出了什麼問題。這個看起來更像是Jet引擎中的一個bug。我只是在Microsoft Access 2002中測試以運行相同的查詢,並將「打開」視爲完全有效的名稱。我可以創建一個名爲「open」的表並根據需要做任何事情。我只需要知道它是否是Jet引擎中的一個錯誤,所以我可以繼續前進,並將人工可讀的消息替換爲可讀的消息並向用戶顯示,或者如果代碼存在問題。當查詢「select * from open」時,獲取「IErrorInfo.GetDescription失敗並返回E_FAIL(0x80004005)」

+0

我不能回答你的問題,但在交互式訪問你有一個不同的保留字集比你使用ADO/OLEDB時,除非你在Access中打開SQL 92模式(你可能不會因爲它是不是默認設置,如果您嘗試使用Access構建前端,那麼這將不可取)。我不知道OPEN是一個保留字而不是另一個保留字,但我只是想糾正你的假設,即在internactive Access中運行SQL證明從Access外部運行時可以。 –

回答

5

我經歷過同樣的問題,嘗試在方括號即:

"select * from [open]" 
+1

這應該是被接受的答案。謝謝@abubakar! – swdev

+0

歡迎您! –

0

我用下面的SQL在Excel封閉保留字:

"select * from [open$]" 

也許你可以試試。

相關問題