Основы ODBC
В этом разделе приведены основы Подключение тивности открытой базы данных (ODBC):
- Как ODBC работает с классами баз данных
- Как работают драйверы ODBC с Dynasets
- Какие компоненты ODBC необходимо распространить с помощью приложений
Вы также хотите прочитать связанный раздел ODBC: библиотека курсоров ODBC.
Источники данных ODBC доступны через классы ODBC MFC, как описано в этом разделе, или с помощью классов объектов ДОСТУПА к данным MFC (DAO).
Классы ODBC MFC поддерживают Юникод и многопоточность. Дополнительные сведения о поддержке многопоточных операций см. в разделе «Классы и потоки ODBC»
ODBC — это интерфейс уровня вызова, позволяющий приложениям получать доступ к данным в любой базе данных, для которой существует драйвер ODBC. С помощью ODBC можно создавать приложения базы данных с доступом к любой базе данных, для которой у пользователя есть драйвер ODBC. ODBC предоставляет API, который позволяет приложению быть независимо от системы управления исходной базой данных (СУБД).
ODBC — это часть базы данных архитектуры Microsoft Windows Open Services (WOSA), которая позволяет классическим приложениям windows подключаться к нескольким вычислительным средам без перезаписи приложения для каждой платформы.
Ниже приведены компоненты ODBC:
- ODBC API Библиотека вызовов функций, набор кодов ошибок и стандартный синтаксис SQL для доступа к данным в СУБД.
- Диспетчер драйверов ODBC Библиотека динамической компоновки (Odbc32.dll), которая загружает драйверы баз данных ODBC от имени приложения. Эта библиотека DLL является прозрачной для приложения.
- Драйверы базы данных ODBC Один или несколько БИБЛИОТЕК DLL, обрабатывающих вызовы функции ODBC для определенных СУБД. Список предоставленных драйверов см. в списке драйверов ODBC.
- Библиотека курсоров ODBC Библиотека динамического канала (Odbccr32.dll), которая находится между диспетчером драйверов ODBC и драйверами и обрабатывает прокрутку данных.
- Администратор ODBC Средство, используемое для настройки СУБД, чтобы сделать его доступным в качестве источника данных для приложения.
Приложение обеспечивает независимость от СУБД путем работы с драйвером ODBC, написанным специально для СУБД, а не непосредственно с СУБД. Драйвер преобразует вызовы в команды, которые его СУБД может использовать, упрощая работу разработчика и делая его доступным для широкого спектра источников данных.
Классы базы данных поддерживают любой источник данных, для которого у вас есть драйвер ODBC. Это может быть, например, реляционная база данных, база данных с индексированным последовательным доступом (ISAM), электронная таблица Microsoft Excel или текстовый файл. Драйверы ODBC управляют подключениями к источнику данных, а SQL используется для выбора записей из базы данных.
Список драйверов ODBC, включенных в эту версию Visual C++, и сведения о получении дополнительных драйверов см. в статье Список драйверов ODBC.
Программный интерфейс ODBC (Open Database Connectivity)
ODBC — это программный интерфейс (API) доступа к базам данных, разработанный компанией Microsoft.
C помощью ODBC программисты могут разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками.
Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие конкретное наполнение стандартных функций из ODBC API с учётом особенностей их продукта. Приложения используют эти функции, реализованные в соответствующем конкретному источнику данных драйвере, для унифицированного доступа к различным источникам данных.
Определяют два типа драйверов — одноуровневые и многоуровневые. Одноуровневые обрабатывают вызовы ODBC и операторы SQL. Многоуровневые обрабатывают только вызовы ODBC, оставляя СУБД осуществлять обработку SQL-запросов.
Драйверы ODBC могут поддерживать многопоточность (multithreaded driver), то есть с одним драйвером могут одновременно работать несколько приложений в синхронном режиме. В случае, если драйвер не является многопоточным, он работает только в асинхронном режиме.
Источниками данных, например, могут быть: реляционная база данных, хранилище данных, база данных индексно-последовательного метода доступа (ISAM), электронная таблица Microsoft Excel или текстовый файл. Кроме того, через ODBC можно подключиться и к таким источникам данных, как: Hive, MongoDB, Cassandra, Impala, CouchDB, HBase и прочие.
В Loginom существует встроенная интеграция, которая дает возможность настроить подключение к ODBC источнику данных.
Технология «клиент-сервер»
Client — server ) — сетевая архитектура, в которой устройства являются либо клиентами, либо серверами. Клиентом ( front end ) является запрашивающая машина (обычно ПК), сервером ( back end ) — машина, которая отвечает на запрос. Оба термина (клиент и сервер) могут применяться как к физическим устройствам, так и к программному обеспечению.
С lient / Server network ) — это локальная вычислительная сеть (LAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции или клиенты (такие, как ПК) должны обращаться к ресурсам сети через серве р( ы ).
Клиент-серверная СУБД позволяет обмениваться клиенту и серверу минимально необходимыми объёмами информации. При этом основная вычислительная нагрузка ложится на сервер. Клиент может выполнять функции предварительной обработки перед передачей информации серверу, но в основном его функции заключаются в организации доступа пользователя к серверу.
В большинстве случаев клиент-серверная СУБД гораздо менее требовательна к пропускной способности компьютерной сети, чем файл-серверная СУБД, особенно при выполнении операции поиска в базе данных по заданным пользователем параметрам, т.к. для поиска нет необходимости получать на клиент весь массив данных: клиент передаёт параметры запроса серверу, а сервер производит поиск по полученному запросу в локальной базе данных. Результат выполнения запроса, который обычно на несколько порядков меньше по объёму, чем весь массив данных, возвращается клиенту, который обеспечивает отображение результата пользователю.
ODBC (Open DataBase Connectivity) — это открытый интерфейс доступа к базам данных, разработанный фирмой X/ Open .
В начале 1990 г. существовало несколько поставщиков баз данных, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими источниками данных, для взаимодействия с каждой из баз данных был необходим нестандартный код. Для решения возникшей проблемы Microsoft и ряд других компаний создали стандартный интерфейс для получения и отправки данных источникам данных различных типов. Этот интерфейс был назван open database connectivity (открытая связь с базами данных).
C помощью ODBC программисты могли разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками.
MFC усовершенствовала ODBC для разработчиков приложений. Истинный интерфейс ODBC является обычным функциональным API. Вместо создания простой оболочки функционального API, разработчики MFC создали набор абстрактных классов, представляющих логические сущности в базе данных.
Настройка ODBC
Данный раздел посвящен установке стандартного windows клиента odbc .
Фирма Microsoft , контролирующая стандарт, поставляет набор драйверов для наиболее популярных БД. Другие фирмы поставляют на рынок драйверы для своих БД. Стандарт таков, что программа без компиляции будет работать с самыми разными БД.
Архитектура ODBC основана на использование динамических библиотек. На верхнем уровне находится библиотека odbc 32. dll -менеджер драйверов odbc . Эта библиотека представляет интерфейс прикладного программирования. Она обращается к другим динамическим библиотекам (драйверам), отвечающим за взаимодействие с конкретными БД. Все драйверы регистрируются в реестре.
С точкм зрения программирования ODBC это набор функций и структур, которые используются для доступа к реляционным БД. Для применения этого инструмента в современных системах программирования, исповедующих объектный подход, продеться все равно создавать для него некоторую объектную оболочку, по этому в чистом виде ODBC в настоящее время почти не используется.
ADO.NET: Обзор технологии
Многие программисты, работающие с базами данных на платформах Microsoft, могли оценить простоту и удобство технологии ADO — ActiveX Data Objects . Интутитивно-понятный интерфейс и логичный набор объектов вместе с простотой программирования заслуженно получили признание программистов. Несмотря на это, вместе с новой платформой .NET Microsoft представляет и новое поколение средств доступа к базам данных — ADO.NET.
C тремительное развитие веб приложений вызвало необходимость пересмотреть методы работы с источниками данных, лучше адаптировать их к специфики приложений. Непредсказуемый рост числа клиентов интернет сайтов заставляет разработчиков переходить от клиентсерверной к three-tier архитектуре, что часто порождает непреодолимые проблемы. Базы данных не способны поддерживать неограниченное число активных соединений, ограничивая доступность сайта и принося убытки. Брандмауэры могут препятствовать передаче двоичных данных между узлами. ADO.NET призвано решить эти и другие проблемы и вместе с тем сохранить удобство и простоту программирования.
Преимущества и нововведения в ADO.NET
Использование разъединенной модели доступа к данным.
В клиент-серверных приложениях традиционно используется технология доступа к источнику данных при которой соединение с базой поддерживается постоянно. Однако после широкого распространения приложений, ориентированных на Интернет, выявились некоторые недостатки такого подхода. Попробуем выявить некоторые из них.
Соединения с базой данных требуют выделения системных ресурсов, что может быть критично при большой нагрузке сервера. Хотя постоянное соединение позволяет несколько ускорить работу приложения, общий убыток от растраты системных ресурсов сводит преимущество на нет.
Специфика веб приложений не позволяет серверу в каждый момент времени знать, что необходимо пользователю. То есть до следующего запроса сервер не имеет представления, нужно ли еще поддерживать соединение.
Опыт разработчиков показал, что приложения с постоянным соединением с источником данных черезвычайно трудно поддаются масштабированию.
Хотя существуют и другие недостатки, приведенные, на мой взгляд, наиболее существенны и вероятнее всего встречались читателю. Все эти проблемы порождаются постоянным соединением с базой данных и решаются в ADO.NET, где используется другая модель доступа. Теперь соединение устанавливается лишь на то короткое время, когда необходимо проводить операции над базой данных.
Следует признать, что новая технология иногда все же проигрывает традиционной. Для этих случаев рекомендовано (не только мною, но и Microsoft) использовать ADO. Примерами таких приложений служат програмы проводящие частые и объемные изменения содержания записей — заказ билетов, например (подробнее о причинах непригодности разъединенной модели в этом случае см. следующий раздел).
Хранение данных в объектах DataSet .
При работе с базой данных нам чаще всего приходится работать не с одной, а несколькими записями. Более того, данные эти могут собираться из различных таблиц. В разъединенной модели доступа к базе данных не имеет смысла соединяться и источником данных при каждом обращении. Исходя из этого, представляется логичным хранить несколько строк и обращаться к ним при необходимости. Для этих целей и используется DataSet .
DataSet представляет собой, по сути, упрощенную реляционную базу данных и может выполнять наиболее типичные для таких баз данных операции. Теперь, в отличие от Recordset мы можем хранить в одном DataSet сразу несколько таблиц, связи между ними, выполнять операции выборки, удаления и обновления данных. Безусловно, разъединенная модель не позволяет постоянно отслеживать изменения в базе данных, производимые другими пользователями. Это может привести к ошибкам в таких приложениях, где информация должна обновляться каждый момент — заказ билетов или продажа ценных бумаг. Однако в любую секунду может быть получена свежая информация из базы данных через вызов метода FillDataSet . Таким образом, DataSet остается черезвычайно удобным для самого широкого класса приложений: когда необходимо получить данные из базы и как-либо обработать их.
Подробнее DataSet и его программирование мы рассмотрим в разделе статьи, посвященном практическому применению ADO.NET.
Глубокая интеграция с XML.
Все более широко распространяющийся XML играет важнейшую роль в ADO.NET и приносит еще несколько преимуществ по сравнению с традиционным подходом.
Заметим для начала, что практически любой XML файл может быть использован как источник данных и на его основе может быть создан DataSet . точно также при передаче данных между компонентами или сохранении их в файл используется XML.
Программист, работающий с ADO.NET не обязательно должен иметь опыт работы с XML или познания в этом языке. Все операции остаются прозрачными для разработчика.
Так как XML имеет текстовое представление, это позволяет передавать его по протоколам типа HTTP через брандмауэры. Дело в том, что системы защиты обычно настроены на фильтрацию двоичной информации, текстовая же легко пропускается, что облегчает создание распределенных приложений.
XML представляет собой промышленный стандарт, поддерживаемый практически любой современной платформой, что позволяет передавать данные любому компоненту, умеющему работать с XML, и выполняющемуся под любой операционной системой.
При передачи больших объемов информации через COM возникает проблема приведения типов данных, так как COM поддерживает лишь ограниченный их набор. Действительно, COM маршаллинг может требовать длительной обработки, что негативно сказывается на производительности приложения. XML же поддерживает неограниченное число типов и не требует их конверсии, что позволит ускорить процесс передачи данных.
Управление источниками данных ODBC
Open Database Connectivity (ODBC) — это протокол, используемый для подключения базы данных Microsoft Access к внешнему источнику данных, например Microsoft SQL Server. В этой статье содержатся общие сведения об источниках данных ODBC, способах их создания и подключения к ним с помощью Microsoft Access. Действия, которые требуется выполнить, зависят от используемых баз данных и драйверов ODBC.
В этой статье
- Сведения об источниках данных ODBC
- Добавление источника данных 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.
