- Подключение Access к SQL Server
- В этой статье
- Использование драйвера ODBC или поставщика OLE DB
- Программное обращение к SQL Server из Access
- Общие сведения о версиях драйвера ODBC
- «MS Access» через «ODBC»
- Добавление и изменение источников данных с использованием программы установки
- Добавление источника данных для Windows
- Изменение источника данных для Windows
Подключение Access к SQL Server
Вспомните детство, когда алфавитный суп был вашим любимым блюдом. Хорошо, что у вас сохранились эти воспоминания — сейчас мы покажем вам, как приготовить своего рода алфавитный суп из базы данных. В следующих разделах изложены основы работы с базой данных: доступ с помощью строки подключения и через программный интерфейс базы данных на языке Access VBA.
В этой статье
Использование драйвера ODBC или поставщика OLE DB
Строки подключения придуманы уже давно. Строку подключения определенного формата можно задать как в пользовательском интерфейсе Access, так и в коде VBA. Строка подключения (как ODBC, так и OLE DB) передает информацию, например расположение сервера, имя базы данных, тип безопасности и другие полезные параметры, прямо в базу данных. Пример:
Сначала была создана автономная библиотека SQL Server Native Client (SNAC), содержащая технологии ODBC и OLED, и она до сих пор доступна для SQL Server версий 2005 — 2012. SNAC использовалась во многих старых приложениях и все еще поддерживается для обеспечения обратной совместимости, но эту библиотеку не рекомендуется использовать для разработки новых приложений. Необходимо использовать более новые отдельные, загружаемые версии драйверов ODBC.
Open Database Connectivity (ODBC) — это протокол, используемый для подключения базы данных Access к внешнему источнику данных, например Microsoft SQL Server. Как правило, для добавления строки подключения используются файловые источники данных (также называемые файлами DSN); в этом случае в строке подключения используется ключевое слово FILEDSN, или данные из реестра; в этом случае используется ключевое слово DSN. Кроме того, такие свойства можно задавать в коде VBA, используя строку подключения без DSN.
Развитие драйверов ODBC происходило в три этапа.
До 2005 г. драйверы ODBC поставлялись в составе компонентов доступа к данным Windows (Windows Data Access Components, WDAC), которые изначально назывались компонентами доступа к данным Microsoft (Microsoft Data Access Components, MDAC). Это компоненты до сих пор предлагаются в составе Windows для обеспечения обратной совместимости. Подробную информацию см. в статье Компоненты доступа к данным Microsoft или Windows.
Драйверы ODBC поставлялись со SNAC для версий SQL Server 2005 — SQL Server 2012.
После SQL Server 2012 драйверы ODBC поставляются отдельно и содержат поддержку новых функций SQL Server.
Для новых разработок не рекомендуется использовать драйверы ODBC первых двух этапов, а выбирать драйверы ODBC третьего этапа.
Поставщики OLE DB
Object Linking and Embedding, Database (OLE DB) — это более современный протокол, используемый для подключения базы данных Access к внешнему источнику данных, например Microsoft SQL Server. OLE DB не требует наличия DSN и предоставляет полный доступ к источникам данных ODBC и драйверам ODBC.
Совет Как правило, для добавления строки подключения OLE DB используется диалоговое окно Свойства связи с данными. Хотя из Access нельзя открыть диалоговое окно Свойства связи с данными, в проводнике можно создать пустой файл TXT, изменить его тип на , а затем дважды щелкнуть файл. После создания строки подключения снова измените тип файла на TXT.
Развитие поставщиков OLE DB происходило в три этапа.
До 2005 г. поставщики OLE DB поставлялись в составе компонентов доступа к данным Windows (Windows Data Access Components, WDAC), которые изначально назывались компонентами доступа к данным Microsoft (Microsoft Data Access Components, MDAC).
Поставщики OLE DB поставлялись для версий SQL Server 2005 — SQL Server 2017. В 2011 г. эти поставщики были объявлены устаревшими.
В 2017 г. поставщик OLE DB для SQL Server снова был введен в строй.
В настоящее время для новых разработок рекомендуется версия драйвера OLE DB 18 для SQL Server.
Оптимизация производительности с помощью строки подключения ODBC
Чтобы оптимизировать производительность, свести к минимуму сетевой трафик и сократить многопользовательский доступ к базе данных SQL Server, используйте как можно меньше строк подключения, распределяя каждую из них по нескольким наборам записей. Хотя Access просто передает строку подключения на сервер, программа распознает и может использовать следующие ключевые слова: DSN, DATABASE, UID, PWD и DRIVER, которые помогают свести к минимуму коммуникацию между клиентом и сервером.
Примечание. В случае разрыва подключения ODBC к внешнему источнику данных Access автоматически пытается восстановить подключение. Если такая попытка будет успешной, можно продолжать работу. Если же восстановить подключение не удается, вы можете работать с объектами, не использующими подключение. Для повторного подключения закройте и снова откройте Access.
Рекомендации по одновременному использованию ODBC и OLE DB
Избегайте сочетания строки подключения и технологий доступа к базе данных. Используйте строку подключения ODBC для DAO. Используйте строку подключения OLE DB для ADO. Если приложение содержит код VBA, в котором используются как DAO, так и ADO, используйте драйвер ODBC для DAO и поставщик OLE DB для ADO. Старайтесь получить в свое распоряжение самые новые функции и поддержку ODBC и OLEDB.
В ODBC используется термин «драйвер», а в OLE DB — термин «поставщик». Эти термины относятся к одному и тому же типу программных компонентов, но не являются взаимозаменяемыми в синтаксисе строки подключения. Используйте правильное значение термина согласно документации.
Программное обращение к SQL Server из Access
Существует два основных способа программного доступа к базе данных SQL Server из Access.
Объект доступа к данным (data access object, DAO) предоставляет абстрактный интерфейс базы данных. Объекты доступа к данным Microsoft (DAO) — это встроенная модель программных объектов, которая позволяет проникнуть в суть Access и SQL Server для создания, удаления, изменения и перечисления объектов, таблиц, полей, индексов, связей, запросов, свойств и внешних баз данных.
Объекты данных ActiveX (ADO) предлагают высокоуровневую программную модель и доступны в Access по ссылке на стороннюю библиотеку. Модель ADO проста в изучении и позволяет клиентским приложениям получать данные из различных источников, в том числе Access и SQL Server, и управлять ими. Ее основные преимущества — удобство использования, высокая скорость, малое потребление памяти и места на диске. Кроме того, в ADO поддерживаются основные функции для разработки и веб-приложений.
Какую технологию использовать?
В решениях Access, где применяется код VBA, можно использовать DAO, ADO или и то, и другое. DAO, как и раньше, используется в Access по умолчанию. Например, во всех формах, отчетах и запросах Access используется DAO. Но при миграции на SQL Server рекомендуется использовать ADO, чтобы сделать решение более эффективным. Далее приведены общие рекомендации по выбору DAO или ADO в разных ситуациях.
Используйте DAO, если требуется:
создать связанную форму для чтения и записи без использования VBA;
обращаться к локальным таблицам;
загружать данные во временные таблицы;
использовать запросы к серверу в качестве источников данных для отчетов или форм в режиме «только для чтения»;
определить и использовать объект TableDef или QueryDef в VBA.
Используйте ADO, если требуется:
прибегать к дополнительным возможностям оптимизации, таким как выполнение асинхронных операций;
выполнять запросы DDL и DML к серверу;
напрямую обращаться к данным SQL Server можно получить с помощью наборов записей в VBA;
писать упрощенный код для определенных задач, таких как потоковая передача BLOB-объектов;
напрямую вызывать хранимую процедуру с параметрами, используя объект команды в VBA.
Общие сведения о версиях драйвера ODBC
В следующей таблице приведены основные сведения о версиях драйвера ODBC, местах их загрузки и поддержке функций. Выберите правильную разрядность версии драйвера (64-разрядную или 32-разрядную) на основе Windows, а не Office. Если используется 32-разрядная версия Access в 64-разрядной версии Windows, устанавливайте 64-разрядные драйверы, которые содержат необходимые для Access 32-разрядные компоненты.
Источник
«MS Access» через «ODBC»
Суть: нужно подключиться к базе данных, созданной в СУБД « MS Access » через « ODBC » в собственном приложении на «Дельфи 7».
Для начала заходим в раздел «Панель управления – Администрирование – Источники данных ( ODBC )». Добавляем новый источник данных.
Рис. 1. Администратор источников данных ODBC
Затем выбираем «Driver do Microsoft Access».
Рис. 2. Создание нового источника данных
Потом, в окне «Установка драйвера ODBC …» задаем имя, описание и выбираем путь к базе данных, например, «Автовокзал. mdb ».
Рис. 3. Установка драйвера ODBC для MS Access
После этого переходим в исходное окно «Администратор источников данных…» и видим, что «Автовокзал» добавился в источник.
Рис. 4. Первоначальное окно «Администратор источников данных…»
Затем запускаем приложение «Дельфи 7», размещаем на форме компоненты: ADOConnection , ADOTable , DataSource , DBGrid . Настраиваем компоненты для подключения через ODBC.
Сначала кликаем по компоненту « ADOConnection 1» и настраиваем строку подключения, выбираем « Microsoft OLE DB Provider for ODBC ». Жмем кнопку «Далее» и переходим на закладку «Подключение».
Рис. 5. Настройка строки подключения в «Дельфи 7»
На закладке «Подключение» выбираем источник данных «Автовокзал» и проверяем подключение нажатием на кнопку «Проверить подключение».
Источник
Добавление и изменение источников данных с использованием программы установки
Эта функция будет удалена в следующей версии Windows. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте драйвер ODBC, предоставляемый Oracle.
Источник данных определяет путь к данным, которые могут включать в себя сетевую библиотеку, сервер, базу данных и другие атрибуты. в этом случае источником данных является путь к базе данных Oracle. для подключения к источнику данных диспетчер драйверов проверяет реестр Windows на наличие конкретных сведений о подключении.
Запись реестра, созданная администратором источников данных ODBC, используется диспетчером драйверов ODBC и драйверами ODBC. Эта запись содержит сведения о каждом источнике данных и связанном с ним драйвере. Прежде чем можно будет подключиться к источнику данных, необходимо добавить сведения о его подключении в реестр.
Чтобы добавить и настроить источники данных, используйте Администратор источников данных ODBC. Администратор ODBC обновляет сведения о соединении с источником данных. При добавлении источников данных администратор ODBC обновляет данные реестра.
Добавление источника данных для Windows
Откройте Администратор источников данных ODBC.
В диалоговом окне Администратор источников данных ODBC нажмите кнопку Добавить. Откроется диалоговое окно Создание нового источника данных.
Выберите Microsoft ODBC для Oracle и нажмите кнопку Готово. Откроется диалоговое окно Установка Microsoft ODBC для Oracle.
В поле имя источника данных введите имя источника данных, к которому необходимо получить доступ. Это может быть любое имя, которое вы выбрали.
В поле Описание введите описание драйвера. Это необязательное поле описывает драйвер базы данных, к которому подключается источник данных. Это может быть любое имя, которое вы выбрали.
В поле имя пользователя введите имя пользователя базы данных (идентификатор пользователя базы данных).
В поле сервер введите псевдоним базы данных или строку подключения для ядра сервера Oracle, к которому требуется получить доступ.
Нажмите кнопку ОК, чтобы добавить этот источник данных.
Откроется диалоговое окно Источники данных, и Администратор ODBC обновляет данные реестра. Введенные имя пользователя и строка подключения становятся значениями подключения по умолчанию для этого источника данных при подключении к нему.
Щелкните параметры Дополнительные спецификации драйвера ODBC для Oracle Setup:
Преобразование . Щелкните выбрать, чтобы выбрать загруженный транслятор данных. Значение по умолчанию — .
Производительность — флажок Включить примечания в функциях каталога указывает, будет ли драйвер возвращать столбцы примечаний для результирующего набора SQLColumns . Драйвер ODBC для Oracle обеспечивает более быстрый доступ, если это значение не задано.
флажок включить синонимы в SQL столбцах указывает, возвращает ли драйвер сведения о столбце. Размер буфера определяет размер (в байтах), выделенный для получения полученных данных. Драйвер оптимизирует выборку, чтобы одна выборка из сервера Oracle возвращала достаточное количество строк для заполнения буфера указанного размера. Большие значения, как правило, увеличивают производительность при выборке большого объема данных.
Настройка . флажок принудительно использовать стандарт ODBC DayOfWeek определяет, будет ли результирующий набор соответствовать формату даты и дня недели ODBC (воскресенье = 1; Суббота = 7). Если этот флажок снят, то возвращается значение Oracle, зависящее от локали.
SQLDescribeCol всегда возвращает значение для точности , указывающее, должен ли драйвер возвращать ненулевое значение для аргумента кбколдеф SQLDescribeCol. Этот атрибут строки подключения применяется только к столбцам, для которых не определен масштаб Oracle, например вычисленные числовые столбцы и столбцы, определенные как число без точности или масштаба. Вызов SQLDescribeCol возвращает 130 для точности, когда Oracle не предоставляет эти сведения. Если этот флажок снят, драйвер возвратит значение 0 для этих типов столбцов.
Нажмите кнопку Добавить, чтобы добавить другой источник данных, или нажмите кнопку Закрыть, чтобы выйти.
Изменение источника данных для Windows
Откройте Администратор источников данных ODBC. Щелкните соответствующую вкладку DSN.
Выберите источник данных Oracle, который необходимо изменить, и нажмите кнопку Настроить. Откроется диалоговое окно Установка Microsoft ODBC для Oracle.
Измените применимые поля источника данных и нажмите кнопку ОК.
Завершив изменение сведений в этом диалоговом окне, администратор ODBC обновляет данные реестра.
Источник