奇怪的excel文件的ADO OpenSchema(adSchemaColumns)失败

时间:2012-11-07 09:55:16

标签: c++ excel ado

我有使用C ++& amp ;;从MS Excel文件中读取列标题的代码。 ADO。我从一个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列 - 成功。

欢迎任何想法,

谢谢

0 个答案:

没有答案