【发布时间】:2011-02-09 05:24:41
【问题描述】:
我的 C# 应用程序连接到 Jet 4.0 引擎。当我运行查询“select * from open”时(我认为“open”是一个关键字,这就是我遇到异常的原因,但是......)我得到了这个异常:“IErrorInfo.GetDescription failed with E_FAIL(0x80004005 )”。我通常会得到更多人类可读的异常,告诉我我的查询出了什么问题。这个看起来更像是 Jet 引擎中的一个错误。我刚刚在 Microsoft Access 2002 中进行了测试以运行相同的查询,它将“open”视为一个完全有效的名称。我可以创建一个名为“open”的表并用它做任何我想做的事情。我只需要知道这是否是 Jet 引擎中的错误,以便我可以继续将看起来很奇怪的消息替换为人类可读的消息并将其显示给用户,或者我的代码是否存在问题。
【问题讨论】:
-
我无法回答您的问题,但在交互式 Access 中,您的保留字集与使用 ADO/OLEDB 时不同,除非您在 Access 中打开了 SQL 92 模式(您可能不要,因为它不是默认设置,如果您尝试使用 Access 构建前端,则不建议这样做)。我不知道 OPEN 是否是一个保留字而不是另一个,但我只是想纠正您的假设,即在交互式 Access 中运行 SQL 证明从外部 Access 运行时可以。