У меня есть код, который читает заголовки столбцов из файлов MS Excel, используя C ++ & ADO. Я получил этот файл Excel от кого-то, для кого команда OpenSchema (adSchemaColumns) не работает (ошибка: 0x800A0CB3: «Объект или поставщик не может выполнить запрошенную операцию»). Чтобы сузить проблему, я удалил все данные из файла & удалил все столбцы, кроме столбца А. Если я также удаляю столбец А, OpenSchema завершается успешно. Иначе не получится. Я сравнил столбец A с другими столбцами, используя функцию Excel CELL: формат, защита, содержимое: но нет никакой разницы.
В любом случае 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 — успешно.
Любые идеи приветствуются,
Спасибо
Задача ещё не решена.
Других решений пока нет …