Поставщик OLE DB для Jet
Изменения: 5 декабря 2005 г.
Поставщик OLE DB для Jet (Microsoft) предоставляет интерфейс OLE DB для баз данных Microsoft Access и позволяет распределенным запросам SQL Server 2005 обращаться к базам данных Access и электронным таблицам Excel.
Создание связанного сервера для доступа к базе данных Access
Выполните процедуру sp_addlinkedserver для создания связанного сервера, указав Microsoft.Jet.OLEDB.4.0 в качестве provider_name, и полное имя пути к MDB-файлу базы данных Access как data_source. MDB-файл базы данных должен находиться на сервере. Аргумент data_source определяется на сервере, а не на клиенте, и путь должен быть допустимым на сервере.
Например, чтобы создать связанный сервер
Nwind
, который работает с базой данных AccessNwind.mdb
, расположенной в папкеc:\mydata directory
, выполните:sp_addlinkedserver 'Nwind', 'Access', 'Microsoft.Jet.OLEDB.4.0', 'c:\mydata\Nwind.mdb'
Для обращения к незащищенной базе данных Access имена входа SQL Server, пытающиеся получить доступ к базе данных Access, должны иметь определенное сопоставление имени входа соответствующему имени пользователя Admin без пароля.
Следующий пример разрешает доступ для локального пользователя
Joe
к связанному серверуNwind
.sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'Admin', NULL
Чтобы получить доступ к защищенной базе данных Access, настройте реестр с помощью редактора реестра для использования корректного файла сведений о рабочей группе, которой пользуется СУБД Access. Используйте редактор реестра для добавления полного пути и имени файла сведений о рабочей группе, которой пользуется СУБД Access в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB
После того как настроена запись реестра, используйте процедуру
sp_addlinkedsrvlogin
для создания сопоставления локального имени входа имени входа СУБД Access:sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'AccessUser', '034fhd99dl'
Примечание безопасности. |
---|
В этом примере проверка подлинности Windows не применяется. Пароли передаются в незашифрованном виде. Пароли могут быть видны в определениях источника данных и сценариях, сохраненных на диске, а также в составе резервных копий и в файлах журналов. Никогда не используйте для таких соединений пароль администратора. За инструкциями по безопасности среды обратитесь к сетевому администратору. |
Базы данных Access не имеют имен каталога и схемы. Поэтому на таблицы в связанном сервере на основе СУБД Access можно ссылаться в распределенных запросах с помощью четырехкомпонентного имени в формате linked_server**...**table_name.
Следующий пример извлекает все строки из таблицы Employees
на связанном сервере Nwind
.
SELECT *
FROM Nwind...Employees
Создание связанного сервера для электронной таблицы Excel
Поставщик OLE DB для Jet 4.0 (Microsoft) может быть использован для доступа к электронным таблицам Microsoft Excel.
Чтобы создать связанный сервер, который обращается к электронной таблице Excel, используйте формат следующего примера:
EXEC sp_addlinkedserver EXCEL, 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'c:\data\MySheet.xls', NULL, 'Excel 5.0;' GO
Для доступа к данным в электронной таблице Excel требуется указать имя для диапазона ячеек. К именованному диапазону можно обратиться, используя имя диапазона как имя таблицы. Следующий запрос может использоваться для обращения к именованному диапазону
SalesData
, используя связанный сервер, установленный в предыдущем примере.SELECT * FROM EXCEL...SalesData GO
При вставке строки в именованный диапазон ячеек строка будет добавлена после последней строки, которая является частью именованного диапазона ячеек. Поэтому, если необходимо вставить строку rA после заголовка столбца, свяжите ячейки заголовка столбца с именем и используйте это имя в качестве имени таблицы. Диапазон ячеек будет автоматически увеличиваться по мере вставки строк.
Настройка связанного сервера для файла с форматированным текстом
Поставщик OLE DB для Jet (Microsoft) может использоваться для доступа к текстовым файлам и запросов из них.
Для создания связанного сервера для обращения к текстовым файлам напрямую, не связывая файлы как таблицы в MDB-файле СУБД Access, выполните процедуру
sp_addlinkedserver
, как показано в следующем примере.Поставщик
Microsoft.Jet.OLEDB.4.0
и строка поставщика'Text'
. Источник данных — полное имя пути каталога, который содержит текстовые файлы. Файл Schema.ini должен присутствовать в том же самом каталоге, где и текстовые файлы. Файл Schema.ini описывает структуру текстового файла. Дополнительные сведения о том, как создать файл Schema.ini, см. в документации по ядру СУБД Jet.--Create a linked server. EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'c:\data\distqry', NULL, 'Text' GO --Set up login mappings. EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL GO --List the tables in the linked server. EXEC sp_tables_ex txtsrv GO --Query one of the tables: file1#txt --by using a four-part name. SELECT * FROM txtsrv...[file1#txt]
См. также
Основные понятия
Поставщики OLE DB, проверенные в работе с SQL Server
Распределенные запросы
Другие ресурсы
sp_addlinkedserver (Transact-SQL)
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
5 декабря 2005 г. |
|