Протокол odbc что это
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
ODBC (Open Database Connectivity)
Содержание
Архитектура
Рисунок 1 – Архитектура ODBC
На рисунке 1 можно увидеть архитектуру ODBC.
Приложения
Приложения — это программа, которая вызывает API ODBC для доступа к данным. Большинство приложений делятся на три категории [Источник 3] :
Универсальные приложения
Универсальные приложения предназначены для работы с множеством разных СУБД. Примеры включают электронную таблицу или пакет статистики, который использует ODBC для импорта данных дальнейшего анализа и текстовый процессор, который использует ODBC для получения списка рассылки из базы данных.
Вертикальные приложения
Вертикальные приложения выполняют один тип задачи, например, ввод заказов или отслеживание производственных данных и работать со схемой БД, контролируемый разработчиком приложения. Для конкретного клиента приложение работает с одной СУБД. Например, малое предприятие может использовать приложение с dBase, хотя большая организация может использовать его с Oracle.
Приложение использует ODBC таким образом, что приложение не привязано к любой из СУБД, несмотря на то, что он может быть привязан к ограниченному числу СУБД, которые предоставляют аналогичные функциональные возможности. Таким образом, разработчик приложения может продавать приложение независимо от СУБД. Вертикальные приложения совместимы при разработке, но иногда модифицируются, чтобы включить несовместимый код, когда клиент выбрал СУБД.
Пользовательские приложения
Пользовательские приложения используются для выполнения определенных задач в одной компании. Например, приложение в крупной компании может собирать данные о продажах с нескольких подразделений (каждый из которых использует различные СУБД) и создать единый отчет. ODBC используется в том случае, когда он представляет собой общий интерфейс и предотвращает программистов от необходимости обучения нескольким интерфейсам. Такие приложения обычно не являются функционально совместимыми и записываются в определенном СУБД и драйверов.
Число задач является общим для всех приложений, независимо от того, как они используют ODBC. В общем, они во многом определяют поток любого приложения ODBC. Например:
Диспетчер драйверов
Диспетчер драйверов существует главным образом для удобства программистов и решает ряд общих проблем для всех приложений. К ним относятся определения, какой драйвер следует загрузить на основании имени источника данных, загрузка и выгрузка драйверов и вызов функций в драйверах.
Драйвера
Задачи драйвера
Определенные задачи, выполняемые драйверами включают:
Архитектура драйвера
Файловый драйвер
Драйвер обращается к физическими данными напрямую. В этом случае драйвер выступает в качестве драйвера и источника данных, то есть он обрабатывает вызовы ODBC и инструкции SQL. Например, драйверы dBase являются файловыми драйверами, поскольку dBase не предоставляет автономный механизм базы данных, который драйвер может использовать. Разработчики файловых драйверов должны создавать свои собственные механизмы баз данных.
СУБД драйверы
ODBC и JDBC
Оба продукта являются популярным выбором на рынке.
Использование языка SQL в прикладных программах
13.4. Интерфейсы программирования приложений (API). DB-Library, ODBC, OCI, JDBC
Как замечено выше, программный SQL отличается от обычной, интерактивной формы наличием некоторых специальных инструкций, а также механизмом трансляции и выполнения запросов. Таким образом, для применения программного SQL в тексте своих программ программистам необходимо ознакомиться с некоторым специфическим набором инструкций. Стоит заметить, что в разных СУБД эти наборы инструкций, вообще говоря, могут несколько отличаться друг от друга. В результате возникает некоторая проблема, связанная с непереносимостью программы.
Протокол ODBC
ODBC (Open Database Connectivity – открытый доступ к базам данных) – разработанный компанией Microsoft универсальный интерфейс программирования приложений для доступа к базам данных [ [ 3.1 ] ].
Основной целью разработки протокола ODBC считается стандартизация механизмов взаимодействия с различными СУБД. Основная проблема, связанная с разработкой приложений, взаимодействующих с базами данных на основе специальных SQL API, состояла в том, что каждая СУБД имела собственный программный интерфейс доступа, каждый из них имел свои особенности и функционировал не совсем так, как другие. В связи с этим разработка приложения существенно зависела от используемой СУБД. Компания Microsoft сделала важный шаг для решения этой проблемы. Основная идея заключалась в разработке универсального интерфейса на уровне семейства операционных систем Windows, который мог бы быть поддержан в разных СУБД.
Рассмотрим кратко структуру программного обеспечения ODBC [ [ 3.1 ] ]:
Схема выполнения программы с использованием протокола ODBC для доступа к данным приводится на рис. 13.5.
Перечень некоторых базисных функций ODBC API приводится в следующей таблице.
Назначение | Функция | Описание |
---|---|---|
Соединение с источником данных | SQLAlocEnv | Получает указатель окружения. Одно окружение может служить для создания нескольких соединений. |
SQLAlIoc Connect | Получает указатель соединения. | |
SQLConnect | Соединяется с указанным драйвером, используя имя источника данных, идентификатор пользователя и пароль. | |
Подготовка SQL запросов | SQLAllocStmt | Размещает указатель выражения. |
SQLPrepare | Подготавливает SQL выражение для дальнейшего использования. | |
SQLGet CursorName | Возвращает имя, связанное c указателем выражения. | |
SQLSet CursorName | Устанавливает имя курсора. | |
Выполнение запросов | SQLExecute | Выполняет заранее подготовленный запрос. |
SQLExec Direct | Выполняет запрос. | |
Выборка результатов и информации о результатах | SQLRow Count | Возвращает количество записей, задействованных в операциях вставки, удаления, модификации. |
SQLNum ResultCol | Возвращает количество колонок в выбранном наборе данных. | |
SQLDescribe Col | Описывает колонку в выбранном наборе данных. | |
SQLCol Attributes | Описывает атрибуты колонки в выбранном наборе данных. | |
SQLBindCol | Присваивает место в памяти для колонки в выбранном наборе данных и указывает ее тип данных. | |
SQLFetch | Возвращает несколько наборов данных. |
Протокол JDBC
JDBC (Java Database Connectivity) представляет собой API для выполнения SQL-запросов к базам данных из программ, написанных на языке Java [ [ 3.1 ] ].
Рассмотрим основные принципы JDBC.
Известно несколько различных версий JDBC. Так, версия 1.0 содержала некоторые средства доступа к данным:
Этот перечень определенным образом напоминает аналогичный функциональный аппарат протокола ODBC.
Версия JDBC 2.0 содержит существенные отличия. Так, вследствие увеличения возможностей интерфейса было проведено его идеологическое разделение на две основные части: Core API (основные возможности) и Extensions API (так называемые расширения).
В [ [ 3.1 ] ] указаны следующие возможности JDBC:
Версия JDBC 3.0 появилась совсем недавно и содержит такие новации, как объектно-реляционные расширения SQL и улучшенные механизмы обработки транзакций. Архитектура JDBC берет свое начало от ODBC и в существенной части повторяет ее, поэтому схема выполнения программы на Java с использованием протокола JDBC для доступа к данным полностью аналогична схеме на рис. 13.5 (слова ODBC заменяются на слова JDBC). В отличие от ODBC, драйверы JDBC подразделяются на четыре типа. Основные отличия между этими типами связаны с местонахождением API СУБД (на клиентской или серверной СУБД) и способом доступа к базе данных (через собственный API СУБД или через ODBC).
Библиотека DB-Library
Библиотека DB-Library реализует интерфейс программирования приложений для совместной работы с широко распространенной СУБД Microsoft SQL Server. Данная библиотека является весьма обширной и содержит более 100 функций. Основными из них являются:
Логика работы прикладной программы, обрабатывающей данные, хранящиеся в базе данных под управлением Microsoft SQL Server, выглядит следующим образом:
Управление источниками данных ODBC
Open Database Connectivity (ODBC) — это протокол, используемый для подключения базы данных Microsoft Access к внешнему источнику данных, например Microsoft SQL Server. В этой статье содержатся общие сведения об источниках данных ODBC, способах их создания и подключения к ним с помощью Microsoft Access. Действия, которые требуется выполнить, зависят от используемых баз данных и драйверов ODBC.
В этой статье
Сведения об источниках данных ODBC
Источник данных — это источник, который содержит данные и сведения о подключении, необходимые для доступа к этим данным. Источником данных может быть сервер SQL Server, реляционная СУБД Oracle, электронная таблица или текстовый файл. Сведения о подключении могут включать расположение сервера, имя базы данных, идентификатор входа, пароль и различные параметры драйвера ODBC, описывающие способ подключения к источнику данных. Эти сведения можно получить у администратора базы данных, к которой нужно подключиться.
В архитектуре ODBC приложения (такие как Access) подключаются к диспетчеру драйверов ODBC, который, в свою очередь, использует конкретный драйвер ODBC (например, Microsoft SQL ODBC) для подключения к источнику данных. В Access источники данных ODBC используются для подключения к внешним источникам данных, у которых нет встроенных драйверов.
Чтобы подключиться к такому источнику данных, выполните указанные ниже действия.
Установите соответствующий драйвер ODBC на компьютере с источником данных.
Определите имя источника данных (DSN) с помощью программы Администратор источников данных ODBC, чтобы сохранить сведения о подключении в реестре Microsoft Windows или DSN-файле, либо с помощью строки подключения в коде Visual Basic, чтобы передать сведения о подключении непосредственно диспетчеру драйверов ODBC.
Машинные источники данных
Машинные источники данных хранят сведения о подстройке в реестре Windows на конкретном компьютере. Машинные источники данных можно использовать только на том компьютере, на который они были определены. Существует два типа машинных источников данных — пользовательские и системные. Источники данных пользователя могут использоваться только текущим пользователем и видны только этому пользователю. Источники данных в системе могут использоваться всеми пользователями на компьютере и видны всем пользователям на компьютере и в службах в масштабе системы. Машинный источник данных особенно полезен, если требуется обеспечить дополнительные сведения о безопасности, так как просматривать его могут только пользователи, которые вошли в систему, и его невозможно скопировать удаленным пользователем на другой компьютер.
Файловые источники данных
Файловые источники данных (также называемые DSN-файлами) хранят сведения о подключении в текстовых файлах, а не в реестре Windows, и, как правило, более гибки в использовании, чем машинные источники данных. Например, файловый источник данных можно скопировать на любой компьютер с подходящим драйвером ODBC, чтобы обеспечить в приложении точность и согласованность сведений о подключении ко всем используемым компьютерам. Кроме того, можно поместить файловый источник данных на отдельный сервер, сделать его общим для нескольких компьютеров в сети и легко управлять централизованными сведениями о подключении.
Некоторые файловые источники данных нельзя сделать общими. Такие источники располагаются на отдельном компьютере и указывают на машинный источник данных. Их можно применять для доступа к существующим машинным источникам данных из файловых источников данных.
Строки подключения
В модуле можно определить отформатированную строку подключения, которая определяет сведения о подключении. Строка подключения передает сведения о подключении непосредственно диспетчеру драйверов ODBC и упрощает приложение, убирая требования к созданию DSN системным администратором или пользователем перед использованием базы данных.
Дополнительные сведения об интерфейсе ODBC см. в разделе MSDN Справочник программиста по ODBC.
Добавление источника данных ODBC
Прежде чем продолжить, установите подходящий драйвер ODBC для источника данных, к которому нужно подключиться.
Примечание: Для добавления или настройки источника данных ODBC необходимо входить в группу администраторов локального компьютера.
Нажмите кнопку Пуск и выберите пункт Панель управления.
На панели управления дважды щелкните элемент Администрирование.
В диалоговом окне «Администрирование» дважды щелкните элемент Источники данных (ODBC).
Откроется диалоговое окно Администратор источников данных ODBC.
Откройте вкладку Пользовательский DSN, Системный DSN или Файловый DSN в зависимости от типа источника данных, который нужно добавить. Дополнительные сведения см. в разделе Сведения об источниках данных ODBC.
Нажмите кнопку Добавить.
Выберите драйвер, который нужно использовать, и нажмите кнопку Готово или Далее.
Если необходимого драйвера нет в списке, обратитесь к администратору базы данных, к которой нужно подключиться, и узнайте, как получить этот драйвер.
Следуйте указаниям и введите требуемые сведения о подключении в последующих диалоговых окнах.
Для получения дополнительных сведений об отдельных параметрах нажмите кнопку Справка в диалоговом окне ODBC.
Что такое ODBC?
В мире вычислений есть множество непонятных концепций ODBC. для конечного пользователя это значок на панели управления Microsoft® Windows®. Для программиста приложения это библиотека, содержащая подпрограммы доступа к данным. Ко многим другим, это ответ на все возможные проблемы доступа к базе данных.
Первая и самое главное, ODBC является спецификацией для API базы данных. Этот API не зависит ни от одной СУБД или операционной системы; Хотя в этом руководстве используется C, API ODBC не зависит от языка. API ODBC основан на спецификациях CLI из Open Group и ISO/IEC. ODBC 3. x полностью реализует обе эти спецификации — более ранние версии ODBC были основаны на предварительных версиях этих спецификаций, но не полностью реализовали их, и добавляет функции, которые часто требуются разработчикам приложений баз данных на основе экранов, таких как прокручиваемые курсоры.
Функции API ODBC реализуются разработчиками драйверов, связанных с СУБД. Приложения вызывают эти функции в этих драйверах для доступа к данным независимо от СУБД. Диспетчер драйверов управляет взаимодействием между приложениями и драйверами.
несмотря на то, что корпорация майкрософт предоставляет диспетчер драйверов для компьютеров под управлением Microsoft Windows® 95 и более поздних версий, написал несколько драйверов odbc и вызывает функции odbc из некоторых приложений, каждый может писать приложения и драйверы odbc. На самом деле, большинство приложений и драйверов ODBC, доступных сегодня, написаны компаниями, отличными от Майкрософт. более того, драйверы и приложения ODBC существуют на® Macintosh и различных UNIXных платформах.
чтобы помочь разработчикам приложений и драйверов, корпорация майкрософт предлагает пакет средств разработки программного обеспечения ODBC (SDK) для компьютеров под управлением Windows 95 и более поздних версий, которые предоставляют диспетчер драйверов, библиотеку DLL установщика, средства тестирования и примеры приложений. корпорация майкрософт разработала с программным обеспечением висиженик, чтобы перенести эти пакеты sdk на Macintosh и различные платформы UNIX.
Важно понимать, что ODBC предназначен для предоставления возможностей баз данных, а не дополнять их. Таким образом, средства записи приложений не должны предполагать, что использование ODBC приведет к внезапному преобразованию простой базы данных в полнофункциональное ядро реляционной базы данных. И не являются модулями записи драйвера для реализации функциональности, не найденной в базовой базе данных. исключением является то, что разработчики, создающие драйверы, которые напрямую обращаются к данным файлов (например, к данным в файле Xbase), необходимы для создания ядра субд, поддерживающего по крайней мере минимальную функциональность SQL. еще одно исключение заключается в том, что компонент ODBC Windows SDK, который ранее включался в пакет SDK для компонентов доступа к данным (MDAC), предоставляет библиотеку курсоров, которая имитирует прокручиваемые курсоры для драйверов, реализующих определенный уровень функциональности.
Приложения, использующие ODBC, отвечают за любые функции межбазовых баз данных. Например, ODBC не является разнородным механизмом соединения и не является обработчиком распределенных транзакций. Однако, поскольку он не зависит от СУБД, он может использоваться для создания таких межбазовых инструментов.
Назначение ODBC
Назначение ODBC выполняет массовую загрузку данных в таблицы базы данных с поддержкой ODBC. Назначение ODBC использует диспетчер соединений ODBC для подключения к источнику данных.
Назначение ODBC включает сопоставления между входными столбцами и столбцами в источнике данных назначения. Нет необходимости сопоставлять входные столбцы всем целевым столбцам, но в зависимости от свойств целевых столбцов могут возникать ошибки, если не задано сопоставление входных столбцов с целевыми столбцами. Например, если целевой столбец не допускает значений NULL, входной столбец должен быть ему сопоставлен. Кроме того, сопоставлены могут быть столбцы различных типов, однако если входные данные несовместимы по типу с данными в целевом столбце, то во время выполнения возникает ошибка. В зависимости от параметра поведения в случае ошибки, ошибка может быть пропущена, может быть вызван сбой, или строка может быть отправлена в вывод ошибок.
Назначение ODBC имеет один обычный вывод и один вывод ошибок.
Параметры загрузки
Назначение ODBC может использовать один из двух модулей загрузки доступа. Режим задается в редакторе источника «ODBC» (страница «Диспетчер соединений»). Доступны два режима.
Row-by-row. В этом режиме назначение ODBC подготавливает инструкцию INSERT с параметрами и использует задачу Выполнение SQL для вставки строк друг за другом.
Обработка ошибок
Назначение ODBC имеет вывод ошибок. Вывод ошибок компонента включает следующие выходные столбцы.
Код ошибки. Номер, который соответствует текущей ошибке. Список ошибок см. в документации по конкретной базе данных-источнику. Список кодов ошибок служб SSIS см. в «Справочнике по кодам ошибок и сообщениям служб SIS».
Столбец с ошибкой. Входной столбец, вызывающий ошибку (это относится к ошибкам преобразования).
Стандартные устройства вывода столбцов данных.
В зависимости от параметра поведения в случае ошибки, назначение ODBC поддерживает возврат ошибок (преобразование данных, усечение), которые обнаруживаются в процессе извлечения в выводе ошибок. Дополнительные сведения см. в разделе Редактор источника «ODBC» (страница «Вывод ошибок»).
Parallelism
Какие-либо ограничения на количество компонентов назначения ODBC, которые могут запускаться параллельно по отношению к одной и той же таблице или к разным таблицам, на одном и том же компьютере или на разных компьютерах (кроме обычных глобальных предельных параметров сеанса), отсутствуют.
Однако количество параллельных соединений через поставщика может быть ограничено в используемом поставщике ODBC. Эти ограничения задают количество параллельных экземпляров, которые могут поддерживаться для назначения ODBC. Разработчик служб SSIS должен знать ограничения всех используемых поставщиков ODBC и учитывать их при построении пакетов служб SSIS.
Необходимо также учитывать, что одновременная загрузка в одну и ту же таблицу может привести к уменьшению производительности из-за стандартной блокировки записей. Это зависит от загружаемых данных и от организации таблицы.
Устранение нарушений в работе назначения ODBC
Предусмотрена возможность вести журнал вызовов к внешним поставщикам данных, выполняемых источником ODBC. Эту возможность ведения журнала можно использовать для устранения нарушений, связанных с сохранением данных во внешних источниках данных, выполняемым назначением ODBC. Для ведения журнала вызовов к внешним поставщикам данных, выполняемых назначением ODBC, включите трассировку диспетчера драйвера ODBC. Дополнительные сведения см. в документации Майкрософт по теме Как формировать трассировку ODBC с помощью администратора источника данных ODBC.
Настройка назначения ODBC
Назначение ODBC можно настраивать программным путем или с помощью конструктора служб SSIS
Дополнительные сведения см. в одном из следующих разделов:
Диалоговое окно Расширенный редактор содержит свойства, которые могут быть заданы программным путем.
Дополнительные сведения о свойствах, которые вы можете задать в диалоговом окне «Расширенный редактор», см. в разделе ODBC Destination Custom Properties.
в этом разделе
Редактор назначения «ODBC» (страница «Диспетчер соединений»)
Страница Диспетчер соединений диалогового окна Редактор назначения ODBC используется для выбора диспетчера соединений ODBC для назначения. На этой странице также можно выбрать таблицу или представление базы данных
Открытие страницы диспетчера соединений в редакторе назначения ODBC
Список задач
На вкладке Поток данных дважды щелкните назначение ODBC.
В окне Редактор назначения ODBC нажмите кнопку Диспетчер соединений.
Параметры
Диспетчер соединений
Выберите из списка существующий диспетчер соединений ODBC или нажмите кнопку «Создать», чтобы создать новое соединение. Соединение может устанавливаться с любой базой данных, поддерживающей ODBC.
Создать
Режим доступа к данным
Выберите метод загрузки данных в назначение. Доступные параметры показаны в следующей таблице.
Параметр | Description |
---|---|
Имя таблицы — пакетом | Выберите этот параметр, чтобы настроить назначение ODBC для работы в пакетном режиме. Если выбран этот параметр, становятся доступны следующие параметры. |
Имя таблицы или представления: выберите доступную таблицу или представление из списка. Этот список содержит только первые 1000 таблиц. Если база данных содержит больше 1000 таблиц, можно ввести начальную часть имени таблицы или воспользоваться подстановочным знаком (*), чтобы ввести любую часть имени для вывода нужных таблиц. Размер пакета: введите размер пакета для массовой загрузки. Это количество строк, загружаемых в виде одного пакета. | |
Имя таблицы — построчно | Выберите этот параметр, чтобы настроить назначение ODBC для вставки каждой строки в целевую таблицу по отдельности. Если выбран этот параметр, становится доступен следующий параметр. |
Имя таблицы или представления: выберите доступную таблицу или представление базы данных из списка. Этот список содержит только первые 1000 таблиц. Если база данных содержит больше 1000 таблиц, можно ввести начальную часть имени таблицы или воспользоваться символом-шаблоном (*), чтобы ввести любую часть имени для вывода нужных таблиц. |
Preview (Предварительный просмотр)
Редактор назначения ODBC (страница «Сопоставления»)
Страница Сопоставления диалогового окна Редактор назначения ODBC используется для сопоставления входных столбцов с целевыми столбцами.
Параметры
Доступные входные столбцы
Список доступных входных столбцов. Перетащите входной столбец в доступный целевой столбец, чтобы сопоставить эти столбцы.
Доступные целевые столбцы
Список доступных целевых столбцов. Перетащите целевой столбец в доступный входной столбец, чтобы сопоставить эти столбцы.
Входной столбец
Целевой столбец
Просмотрите все доступные целевые столбцы, сопоставленные и несопоставленные.
Редактор назначения «ODBC» (страница «Вывод ошибок»)
Страница Вывод ошибок диалогового окна Редактор назначения ODBC используется для выбора параметров обработки ошибок.
Открытие страницы «Вывод ошибок» редактора назначения ODBC
Список задач
На вкладке Поток данных дважды щелкните назначение ODBC.
В окне Редактор назначения ODBC нажмите кнопку Вывод ошибок.
Параметры
Ввод-вывод
Просмотр имени источника данных.
Столбец
Ошибка
Выберите порядок обработки ошибок в потоке назначением ODBC: пропустить ошибку, перенаправить строку или вызвать сбой компонента.
Усечение
Выберите порядок обработки усечений в потоке назначением ODBC: пропустить ошибку, перенаправить строку или вызвать сбой компонента.
Description
Просмотрите описание ошибки.
Присвоить указанное значение выбранным ячейкам
Выберите, как назначение ODBC обрабатывает все выбранные ячейки при возникновении ошибки или усечения: пропустить ошибку, перенаправить строку или вызвать сбой компонента.
Применить
Примените параметры обработки ошибок к выбранным ячейкам.
Параметры обработки ошибок
Следующие параметры позволяют настроить обработку ошибок и усечений назначением ODBC.
Компонент, завершившийся сбоем
Задача потока данных заканчивается сбоем, если возникли ошибка или усечение. Это поведение по умолчанию.
Пропуск неудачи
Ошибка или усечение пропускается.
Перенаправление потока
Строка, вызывающая ошибку или усечение, направляется на вывод ошибок назначения ODBC. Дополнительные сведения см. в разделе, посвященном назначению ODBC.