查询“select * from open”时获取“IErrorInfo.GetDescription failed with E_FAIL(0x80004005)”

Posted

技术标签:

【中文标题】查询“select * from open”时获取“IErrorInfo.GetDescription failed with E_FAIL(0x80004005)”【英文标题】:Getting "IErrorInfo.GetDescription failed with E_FAIL(0x80004005)" when querying "select * from open" 【发布时间】: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 运行时可以。 【参考方案1】:

我也遇到过同样的问题,请尝试将保留字括在方括号中,即:

"select * from [open]"

【讨论】:

【参考方案2】:

我在excel中使用下面的sql:

"select * from [open$]"

也许你可以试试。

【讨论】:

以上是关于查询“select * from open”时获取“IErrorInfo.GetDescription failed with E_FAIL(0x80004005)”的主要内容,如果未能解决你的问题,请参考以下文章

当查询没有要获取的数据时,FirebaseAnimatedList 查询

通过DataFrame查询计数查询时如何获取整数值?

使用 useLazyQuery 挂钩调用查询时如何重新获取查询?

在获取 sql 查询时需要帮助 [关闭]

执行更新查询时获取主键作为输出还是返回?

从多个模型中获取信息时优化 django 查询