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 не является разнородным механизмом соединения и не является обработчиком распределенных транзакций. Однако, поскольку он не зависит от СУБД, он может использоваться для создания таких межбазовых инструментов.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

ODBC (Open Database Connectivity)

Содержание

Архитектура

odbc что это такое. Смотреть фото odbc что это такое. Смотреть картинку odbc что это такое. Картинка про odbc что это такое. Фото odbc что это такое

Рисунок 1 – Архитектура ODBC

На рисунке 1 можно увидеть архитектуру ODBC.

Приложения

Приложения — это программа, которая вызывает API ODBC для доступа к данным. Большинство приложений делятся на три категории [Источник 3] :

Универсальные приложения

Универсальные приложения предназначены для работы с множеством разных СУБД. Примеры включают электронную таблицу или пакет статистики, который использует ODBC для импорта данных дальнейшего анализа и текстовый процессор, который использует ODBC для получения списка рассылки из базы данных.

Вертикальные приложения

Вертикальные приложения выполняют один тип задачи, например, ввод заказов или отслеживание производственных данных и работать со схемой БД, контролируемый разработчиком приложения. Для конкретного клиента приложение работает с одной СУБД. Например, малое предприятие может использовать приложение с dBase, хотя большая организация может использовать его с Oracle.

Приложение использует ODBC таким образом, что приложение не привязано к любой из СУБД, несмотря на то, что он может быть привязан к ограниченному числу СУБД, которые предоставляют аналогичные функциональные возможности. Таким образом, разработчик приложения может продавать приложение независимо от СУБД. Вертикальные приложения совместимы при разработке, но иногда модифицируются, чтобы включить несовместимый код, когда клиент выбрал СУБД.

Пользовательские приложения

Пользовательские приложения используются для выполнения определенных задач в одной компании. Например, приложение в крупной компании может собирать данные о продажах с нескольких подразделений (каждый из которых использует различные СУБД) и создать единый отчет. ODBC используется в том случае, когда он представляет собой общий интерфейс и предотвращает программистов от необходимости обучения нескольким интерфейсам. Такие приложения обычно не являются функционально совместимыми и записываются в определенном СУБД и драйверов.

Число задач является общим для всех приложений, независимо от того, как они используют ODBC. В общем, они во многом определяют поток любого приложения ODBC. Например:

Диспетчер драйверов

Диспетчер драйверов существует главным образом для удобства программистов и решает ряд общих проблем для всех приложений. К ним относятся определения, какой драйвер следует загрузить на основании имени источника данных, загрузка и выгрузка драйверов и вызов функций в драйверах.

Драйвера

Задачи драйвера

Определенные задачи, выполняемые драйверами включают:

Архитектура драйвера

Файловый драйвер

Драйвер обращается к физическими данными напрямую. В этом случае драйвер выступает в качестве драйвера и источника данных, то есть он обрабатывает вызовы ODBC и инструкции SQL. Например, драйверы dBase являются файловыми драйверами, поскольку dBase не предоставляет автономный механизм базы данных, который драйвер может использовать. Разработчики файловых драйверов должны создавать свои собственные механизмы баз данных.

СУБД драйверы

ODBC и JDBC

Оба продукта являются популярным выбором на рынке.

Источник

Программное управление источниками данных ODBC

Введение

odbc что это такое. Смотреть фото odbc что это такое. Смотреть картинку odbc что это такое. Картинка про odbc что это такое. Фото odbc что это такое

Почему ODBC?

Фнукции, с которыми нам придется работать

Естественно, я не буду рассказывать обо всех функциях, с помощью которых можно сделать с ODBC все, что угодно. Поверьте, их очень много. Нам же для нашей практической задачи достаточно будет всего четырех:

1. Функция SQLDataSources возвращает список всех источников данных ODBC.

2. Функция SQLConfigDataSources добавляет, изменяет или удаляет указанный источник данных.

Приведем несколько примеров строки атрибутов, чтобы вам было понятно, что это такое:

Каждый драйвер «понимает» свои ключевые слова, чаще всего применяются:

Для баз данных Microsoft Access для указания имени БД вместо DATABASE используется ключевое слово DBQ.

3. Функция SQLAllocEnv создает новый хэндл для использования в других функциях и инициализирует интерфейс для работы с ODBC

4. Функция SQLFreeEnv удаляет заданный хэндл и освобождает всю память, ассоциированную с ним.

Исходный код

в начало вашего файла. Реализация функций, описанных в этих файлах, находится в нескольких DLL, лежащих в каталоге Windows\System (или WinNT\System32). В наших примерах будут использоваться две такие DLL, а именно odbc32.dll и odbccp32.dll. Чтобы подключить их к проекту, нужно проделать следующие шаги:

1. Запускаем любой досовский файл-менеджер или командную строку Windows и переходим в каталог Windows\System (WinNT\System32) и находим эти две библиотеки.

2. Если каталог BIN С++Builder’а прописан в переменной окружения PATH, просто набираем

иначе набираем полностью путь к файлу implib.exe, либо копируем его в каталог, прописанный в PATH.

3. То же самое проделываем с odbccp32.dll:

5. Из меню Project выбираем пункт Add to Project. и поочередно добавляем odbc32.lib и odbccp32.lib.

Все, теперь система сама загрузит эти DLL во время запуска программы.

Пример 1: Получаем список уже созданных источников данных ODBC.

то мы проверим, сможет ли наша программа работать нормально.

Пример 2: Создаем новый источник данных.

Важное замечание: При создании DSN если такое имя уже есть, то не возвращается ошибка, а создается DSN с текущими параметрами.

Пример 3: Как все это собрать воедино и использовать в программе

2. В конструкторе основной формы прописываем код примера №1, вставляя на место комментария следующий код:

3. Функция NewDSN() полностью повторяет код примера №2.

Теперь при первом запуске программы будет создан источник данных ODBC Microsoft Access с именем c2a, ссылающийся на файл db1.mdb, лежащий в том же каталоге, что и программа.

4. На всякий непредвиденный случай (если вы переместили программу в другой каталог, поменялась буква диска или сетевое имя, где лежит база данных) можно в программе предусмотреть немедленное перезаписывание DSN по горячей клавише, что-то типа такого:

Здесь для перезаписи DSN используется комбинация Alt-Ctrl-F1

Источник

Управление источниками данных 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: подробности

Давно тому назад я рассказывал на страницах «Компьютерных вестей» о технологиях доступа к данным, предлагаемых программистам и пользователям корпорацией Microsoft. Но общих сведений для работы с конкретной технологией не хватит даже самому талантливому программисту, а потому я решил рассказать подробнее о той из них, которая лучше всего себя зарекомендовала, так сказать, на поле боя. И для начала напомню, что же такое, собственно говоря, ODBC.


Четыре буквы, что за ними?

Помимо задачи унификации доступа к данным, ODBC попутно решает ещё одну: одновременный доступ к нескольким базам данных. Для этого, помимо самих драйверов, в архитектуре ODBC предусмотрен специальный менеджер драйверов (Driver Manager), который по-русски также называют администратором или диспетчером драйверов. Он позволяет вызывать функции драйверов из прикладного приложения таким образом, что сохраняется возможность одинаково работать с разными СУБД и при этом не волноваться по поводу таблицы указателей на функции. Общую схему архитектуры ODBC можно увидеть на иллюстрации к статье.

odbc что это такое. Смотреть фото odbc что это такое. Смотреть картинку odbc что это такое. Картинка про odbc что это такое. Фото odbc что это такое

Поскольку ODBC для Windows реализована корпорацией Microsoft, она включила поддержку этой технологии в свои библиотеки для разработчиков. Поэтому сейчас мы с вами воспользуемся библиотекой MFC, которая, мягко говоря, знакома всем разработчикам, имевшим дело с Visual C++. Хотя она инкапсулирует и не все функции ODBC API, её для большинства проектов будет вполне достаточно.

Для работы с ODBC понадобится включить в приложение заголовочный файл afxdb.h. Класс, который используется для работы с БД через ODBC и имеет название CDatabase. Установка соединения вызывается методом Open, который имеет великое множество параметров:

Для того, чтобы определить, активно ли соединение с базой данных, нужно воспользоваться методом IsOpen всё того же класса CDatabase. Метод этот никаких параметров не имеет, а возвращает значение булевского типа. Для закрытия соединения используется точно метод Close, который также не имеет параметров.

Таким образом, минимальный код для работы с БД (в качестве источника данных возьмём, например, навевающий ностальгию Microsoft Access 97) будет иметь следующий вид:

В классе CDatabase есть метод, позволяющий узнать параметры уже установленного соединения. Называется он GetConnect, параметров не имеет и возвращает все параметры соединения в том же виде, в каком они устанавливаются методом Open (т.е. на выходе этого метода будем иметь строку вида «параметр1=значение1; параметр2=значение2; параметр3=значение3»). Аналогичным образом получается имя базы данных, с которой установил соединение драйвер, только для этого используется метод GetDatabaseName. Для проверки прав данного пользователя на внесение изменений в базу данных используется булевский метод CanUpdate.

Однако, углубившись в практику, я забыл, что хотел подробнее рассказать об одном аспекте, который уже упоминал выше.

В настоящий момент, помимо непосредственно библиотек, в рамках проекта написана масса полезных для разработчика утилит и драйверов. Найти всё это можно по адресу www.unixodbc.org. Русскоязычная документация по UnixODBC в Интернете практически отсутствует, если не учитывать некоторое число обзорных статей. Но англоязычной документации много, и, кроме того, для программиста UnixODBC схож с ODBC для Windows. А вот администраторам, конечно, придётся покорпеть над английскими «мануалами».

Однако, если unixODBC очень похожа на ODBC из Windows, то другая технология, очень созвучная по названию той, которую мы с вами сейчас рассматриваем, внутри отличается кардинально.

Есть у компании Sun Microsystems торговая марка JDBC. Согласитесь, звучит похоже на ODBC. И есть соблазн считать JDBC реализацией ODBC для языка Java. Однако это совсем не так на самом-то деле. Хотя JDBC очень похожа на ODBC идейно, это совсем другая технология.

JDBC, как и ODBC, основана на концепции драйверов, позволяющих получать соединение с базой данных по специально описанному URL. Загрузившись, драйвер сам регистрирует себя и вызывается автоматически, когда программа требует URL, содержащий протокол, за который драйвер «отвечает». Соединение с базой данных описывается классом, реализующим интерфейс java.sql.Connection. Имея соединение с базой данных, можно создавать объекты типа Statement, служащие для исполнения запросов к базе данных на языке SQL.

Однако драйверы для ODBC в общем случае не подходят для JDBC, хотя есть и такие драйверы, которые совмещают в себе функции для обеих технологий.

Адепты Java говорят, что JDBC позволяет писать приложения быстрее, чем ODBC из-за того, что сам интерфейс объектно-ориентирован. Однако если использовать MFC и другие оо-библиотеки, то можно так же быстро писать приложения и на других языках программирования.

Кто-то может сказать, что ODBC, созданная ещё в 1991 году, уже устарела морально. Однако востребованность этой технологии опровергает все доводы её противников. До сих пор продолжают разрабатываться приложения, которые поддерживают работу с СУБД через ODBC. И их появляется гораздо больше, чем, скажем, для ADO.NET.

На мой взгляд, использовать в своих программах такой проверенный временем интерфейс доступа к данным вполне разумно. Объектно-ориентированные библиотеки-обёртки, которых для ODBC написано немало, делают скорость разработки совсем не маленькой. Так что изучайте ODBC, и удачи вам в этом не таком уж и простом деле.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *