Страница 1 из 1

Совместная работа delphi 5 с Excel через oledb

Добавлено: 09 ноя 2006, 10:10
smolbars
Всем доброго времени суток!
Такой вопрос: Пытаюсь подключиться в excel файлу как к БД из delphi через ado. В С# такое прокатывало легко и работал с ним более менее. Но требуется написать это на delphi 5. Пробовал через odbc - катит, но там на 1й строке файла данные. И odbc использует их как имена полей. Это не есть гут для этой задачи. Требуется [F1], [F2] и т д А вот строка соединения Oledb где указано hdr='No' не катит. Delphi ругается что провайдера ole db для excel нет. Причем и 5 и 6. Может их надо вручную доставлять? никто не в курсе?
Я имел в виду именно использование их (драйверов ole db для excel) под delphi 5
Причем насколько мне известно у 5 версии какие-то проблемы с Ado - там update надо доставлять.
А вообще в дальнейшем эта задача будет переносится на 6 но желательно чтобы и в 5 компилировалась а после компиляции работала

Добавлено: 10 ноя 2006, 18:12
grey
Я коннекчусь к Excel так:
uses ComObj;
var Excel: Variant;

try
Excel:=CreateOleObject('Excel.Application');
Excel.Workbooks.Open(‘c:\test.xls’);
except
raise Exception.Create('Невозможно поключиться к серверу Excel');
end;
В Delphi 6 работает, в 5 не пробовал

Добавлено: 11 ноя 2006, 09:16
smolbars
Через ole работает но не рулит - важно обратиться к excel как к базе данных а не как к ole объекту и чтобы первая строка были данные а не заголовки полей

Добавлено: 13 ноя 2006, 12:27
grey
smolbars писал(а): важно обратиться к excel как к базе данных а не как к ole объекту
Скажи конкретней что тебе нужно
smolbars писал(а): чтобы первая строка были данные а не заголовки полей
Именно так и происходит (в отличие от ADO где первая строка съедается и от чего (от ADO) я в том числе и по ЭТОЙ причине отказался)
Есть ещё и третий путь - использовать компонент TExcelApplication во вкладке Servers в делфях, но он ИМХО по сути мало чем отличается от второго

Добавлено: 13 ноя 2006, 16:03
smolbars
Поясняю - мне нужно обратиться к excel как к бд - чтобы строить sql запросы. Через ado можно обратиться используя oledb и odbc - но волзможность опредения чем является первая строка (данные или поля) есть только в ole db - а у меня не получается использавать этот провайдер под delphi 5/6 - ругается ide. На C# у меня прокатывало ole db легко - а в delphi нет. Позарез надо именно delphi использовать.
То есть связка: delphi-oledb-excel.
А обращаться через TExcelApplication не катит.