0

我有使用 C++ 和 ADO 从 MS Excel 文件中读取列标题的代码。我从 OpenSchema(adSchemaColumns) 命令失败的人那里得到了这个 Excel 文件(错误是:0x800A0CB3:“对象或提供程序无法执行请求的操作”)。为了缩小问题范围,我从文件中删除了所有数据并删除了除 A 列之外的所有列。如果我也删除了 A 列,则 OpenSchema 成功。否则,它会失败。我使用 excel CELL 函数将 A 列与其他列进行了比较:格式、保护、内容:但没有区别。

在任何情况下,OpenSchema(adSchemaTables) 都不会失败。

这是我使用的 C++ 代码的摘录,用 VS2010 构建:

#import "C:\Program Files\Common Files\System\ADO\msado28.tlb" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF")

_ConnectionPtr pCon;
pCon.CreateInstance(__uuidof(Connection))
pCon->Open(connStr, "", "", NULL)
_RecordsetPtr pSchema = NULL;
pSchema = pCon->OpenSchema(adSchemaColumns);

这是错误的 excel 文件的链接: workbook.xls

我使用 MS Excel 2010。

重现:在未更改的 workbook.xls 上运行代码 - 失败。删除列 A - 成功。

欢迎任何想法,

谢谢

4

0 回答 0