Форум: "Базы";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
ВнизПодключение к Екселю как к БД через ADO Найти похожие ветки
← →
Alexander_K © (2007-01-11 14:40) [0]Добрый день!
Пробую подключиться к экселевскому файлу как к бд...
Но вот ничего не получается...
Использую ADO, кидаю на форму компонент ADOConnection, создаю строку подключения:
Выбираю провайдера Microsoft OLE DB Provider for ODBC Drivers
Создаю DSN файл:
Выбираю драйвер Driver do Microsoft Excel(*.xls)
В окне выбора файла источника данных указываю мой файл экселевский C:\test\qqq.xls
В выборе книги так же выбираю мой файл...
После чего создается файл DSN, который я и выбираю далее...
Содержание DSN файла:
[ODBC]
DRIVER=Driver do Microsoft Excel(*.xls)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
ReadOnly=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=excel 8.0
DriverId=790
DefaultDir=C:\test
DBQ=C:\test\qqq.xls
Нажимаю проверка подключения, выдается: проверка подключения выполнена...
Потом ставлю свойство Connected у ADOConnection в true, все успешно...
Строка подключения получается следующая:
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DBQ=C:\test\qqq.xls;DefaultDir=C:\test;Driver={Driver do Microsoft Excel(*.xls)};DriverId=790;FIL=excel 8.0;FILEDSN=C:\test\qqq.xls.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;R eadOnly=0;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
После чего кидаю на форму ADOQuery, соединяю его с ADOConnection в поле SQL ввожу простейший запрос:
select * from qqq
Делаю Active выдает ошибку:
Объект qqq не найден ядром базы данных Microsoft Jet, проверьте существование объекта и правильность имени и пути.
то же самое выводится и если пишу запрос:
select * from qqq.xls
Народ, подскажите, что я делаю не так?
← →
Виталий Панасенко © (2007-01-11 14:58) [1]Выборка делается из ЛИСТА(Sheet) Select * from [Sheet1]
← →
sniknik © (2007-01-11 15:04) [2]select * from ИмяТаблицы!АНеБазы$
без бакса в конце искать не будет.
кстати, никаких ассоциаций в ошибке не усматриваешь? конкретно
> Объект qqq не найден ядром базы данных Microsoft Jet
хотя подключение к ODBC... (драйвер которого вызывает в свою очередь его), делай лучше прямой коннект, без посредников...
← →
Alexander_K © (2007-01-11 15:25) [3]Попробовал select * from "first$"
все вроде бы получилось, спасибо большое!!!
А вот:
> делай лучше прямой коннект, без посредников...
не совсем понял. Ты предлагаешь выбирать поставщика Microsoft Jet 4.0 OLE DB Provider?
но если там выбрать екселевский файл, при проверке подключения выдается ошибка:
Не выполнена проверка подключения из-за ошибки при инициализации поставщика. Нераспознаваемый формат базы данных: C:\test\qqq.xls
Может я просто че-нибудь не понял?
← →
alex_*** © (2007-01-11 15:34) [4]можно через именованный диапазон: select * from MyRange
conn_str:
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Файлы Excel;DBQ=C:\work\test_small.xls;DefaultDir=C:\work;DriverId=790;MaxBufferSize=2 048;PageTimeout=5;"
← →
sniknik © (2007-01-11 15:49) [5]> но если там выбрать екселевский файл,
то надо указать используемый тип (ISAM)
простейшая строка подключения (замена/аналог(для другого провайдера) твоей)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test\qqq.xls;Extended Properties=Excel 8.0
← →
Alexander_K © (2007-01-11 16:06) [6]Пробую так, Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test\qqq.xls;Extended Properties=Excel 8.0
вроде цепляется... но на запрос
select * from "first$"
говорит: Синтаксическая ошибка в запросе. Неполное предложение запроса.
делаю даже через конструктор для CommandText в ADODataSet
получается запрос:
select * from first$
тоже выдает ошибку: ошибка синтаксиса в предложении FROM
← →
sniknik © (2007-01-11 16:11) [7]кавычки "" "отсебятина" odbc, при передаче он немного корректирует запросы (видно по некоторым ошибкам, не вспомню прям счас каким, с датами вроде есть), попробуй "" заменить на [] это чисто "jet-овское".
← →
Anatoly Podgoretsky © (2007-01-11 16:11) [8]> Alexander_K (11.01.2007 16:06:06) [6]
Проверь с квадратными скобками.
← →
Alexander_K © (2007-01-11 16:12) [9]Оооо, с квадратными скобками все заработало!!!
Всем большое спасибо!
← →
sniknik © (2007-01-11 16:14) [10]> говорит: Синтаксическая ошибка в запросе. Неполное предложение запроса.
;о)) логично, у jet " в конце строки это комментарий (как в VB), те. получается ты передаешь не
select * from "first$"
а
select * from
← →
YurikGL © (2007-01-13 12:56) [11]http://kladovka.net.ru/index.cgi?pid=board&rid=363
Здесь реализовано подключение к Excel через ADO и выполнение запросов (insert точно помню что был :) )
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c