Odbc что это за программа
Перейти к содержимому

Odbc что это за программа

  • автор:

Механизм работы СУБД — зачем нужен универсальный драйвер ODBC, если есть универсальный язык SQL?

Собственно вопрос, каков механизм выполнения запросов к СУБД (например, пусть это будет MySQL) и какова роль в этом механизме таких компонентов, как язык SQL и ODBC? Непонятно вот что, если есть универсальный язык выполнения запросов, который нивелирует различия между СУБД, зачем нужен ещё и универсальный драйвер?

Отслеживать
задан 18 янв 2017 в 12:14
1,294 16 16 серебряных знаков 38 38 бронзовых знаков

sql (язык) — не универсален. Есть диалекты. odbc это один из стандартов (библиотек), позволяющий как сделать запрос, так и узнать список таблиц полей процедур не используя запросы. Кроме odbc есть ещё jdbc, oledb и другие.

18 янв 2017 в 12:19

@nick_n_a, наличие диалектов не отменяет его универсальности, в противном случае в нём бы не было необходимости. Большинство запросов, написанных в соответствии со стандартом, будут одинаково интерпретированы на большинстве реляционных СУБД. А если вы под диалектами понимаете нечто вроде T-SQL или PL/SQL, ну так это скорее процедурные расширения универсального SQL, о которых, замечу, в вопросе речи не шло.

18 янв 2017 в 13:27

Вам правильно ответили. sql = язык. odbc = библиотека (интерфейс для драйверов) к СУБД. odbc может выполнять sql, а sql выполнять odbc нет (sql не связан с odbc). Под универсальностью я имел ввиду то что sql(mysql):show tables не будет равен sql(mssql):select * from sys.tables , а в odbc предусмотрена функция типа gettables которая всегда одинаково вернёт список таблиц для любой СУБД.

18 янв 2017 в 13:31

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

SQL это язык запросов. ODBC это способ подключения к конкретному серверу конкретной БД. Все БД имеют разные протоколы для доступа к серверу БД. ODBC предоставляет унифицированный интерфейс и скрывает конкретную реализацию протокола доступа.

Отслеживать
ответ дан 18 янв 2017 в 12:19
Mikhail Vaysman Mikhail Vaysman
14.2k 1 1 золотой знак 21 21 серебряный знак 31 31 бронзовый знак

Задача драйвера не только передать SQL-запрос серверу, такой протокол передачи можно было бы стандартизироать, если бы он был просто текстом. Но есть такая вещь как передаваемые в запрос параметры и самое главное — результат выполнения запроса. Задача драйвера упаковывать запрос, параметры и результаты в пакеты передаваемые по сети. И формат упаковки языком никак не оговаривается и каждая СУБД реализует его по своему. Тем более, что во многих СУБД существуют не только разные типы данных, но и сложные типы, например, как массивы PostgreSQL, которых в стандартах SQL вообще нет. И как передавать по сети эти типы данных опять же каждая БД решает самостоятельно.

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

Отслеживать
ответ дан 18 янв 2017 в 12:23
44.1k 3 3 золотых знака 35 35 серебряных знаков 66 66 бронзовых знаков

  • sql
  • база-данных
  • драйвер
  • odbc
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.2.12.4680

Odbc что это за программа

Все, что необходимо начинающему и опытному программисту

Стандарт ODBC

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

На рис. 3.19 схематично изображена архитектура ODBC.

Рис. 3.19. Архитектура ODBC

Как видно из рисунка, приложение обращается к диспетчеру драйверов, а диспетчер, в свою очередь, обращается к источнику данных и производит с ними какие-либо действия. Источник данных — это база данных, приложение, операционная система пли даже некая аппаратная платформа. Приложение инициирует запросы на установление соединения с источником данных, на выполнение каких-либо действий с базой данных.

Стандарт ODBC предоставляет разработчику набор интерфейсов для выполнения каждого из этих запросов и регламентирует стандартные коды ошибок, которые будут возвращены приложению в случае неудачного выполнения запроса.

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

Драйвер (driver) обрабатывает запросы, поступающие от приложения, преобразует их в набор команд API СУБД и, таким образом, производит какие-либо действия с базой данных. Драйвер отвечает за то, чтобы стандартные команды ODBC выполнялись корректно. В некоторых случаях источит; данных не поддерживает некоторые функции, таким образом, их приходится выполнять драйверу. Если источник имеет полную поддержку SQL, то драйвер всего лишь передает запрос на обработку и получает результаты. На драйвере также лежит функция приведения кодов ошибок, поступающих от источника, к стандартным, определенным в ODBC.

Определяют два типа драйверов — одноуровневые и многоуровневые. Одноуровневые обрабатывают вызовы ODBC и операторы SQL. Многоуровневые обрабатывают только вызовы ODBC, оставляя СУБД осуществлять обработку SQL-запросов.

Уровни соответствия

Уровень соответствия ODBC (ODBC conformance level) описывает то, какие возможности и функции доступны через API (интерфейс прикладных программ) драйвера, API драйвера содержит набор функций, которые может вызывать приложение для обращения к интерфейсам источника данных. Различают несколько уровней соответствия ODBC, обеспечивающих разные наборы возможностей:

Базовый уровень (Core API):

• соединение с источником данных;
• подготовка и выполнение SQL-запросов;
• получение результирующего набора данных;
• фиксация и откат транзакций;
• получение информации об ошибках.

Первый уровень (Level I API):

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

Второй уровень (Level 2 API):

• соответствие ODBC па первом и базовом уровнях;
• обзор возможных соединений и источников данных;
• использование диалекта SQL данной СУБД;
• вызов библиотеки преобразований;
• обработка двунаправленных курсоров.

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

Уровни соответствия SQL определяют, какие SQL-операторы, выражения и типы данных доступны драйверу на данном уровне. Стандартом определены три уровня соответствия SQL.

Минимальный синтаксис (Minimum SQL grammar):

• CREATE TABLE, DROP TABLE;
• оператор SELECT (без вложенных подзапросов);
• INSERT, UPDATE, DELETE;
• простые выражения (сравнения, арифметические операции);
• типы данных CHAR, VARCHAR, LONGCHAR.

Базовый синтаксис (Core SQL grammar):

• минимальный синтаксис;
• ALTER TABLE, TREATE INDEX, DROP INDEX;
. CREATE VIEW, DROP VIEW;
• GRANT, REVOKE;
• полный синтаксис оператора SELECT;
• встроенные функции SUM, COUNT, MAX, MIN, AVG.

Расширенный синтаксис (Extended SQL grammar):

• базовый синтаксис;
• UPDATE и DELETE с использованием позиции курсора;
• скалярные функции SUBSTRING и ABS;
• переменные даты, времени и временная метка;
• пакетная обработка операторов SQL;
• хранимые процедуры.

Приложение может вызвать драйвер и определить, какой уровень соответствия SQL он поддерживает,

Драйверы ODBC могут поддерживать многопоточность (multithreaded driver), то есть с одним драйвером могут одновременно работать несколько приложении в синхронном режиме, л нося какие-либо изменения в источник данных. В случае, если драйвер не является многопоточным, он работает только в асинхронном режиме.

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru

Что такое 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.

Чтобы помочь разработчикам приложений и драйверов, корпорация Майкрософт предлагает пакет SDK для программного обеспечения ODBC для компьютеров под управлением Windows 95 и более поздних версий, который предоставляет диспетчер драйверов, библиотеку DLL установщика, средства тестирования и примеры приложений. Корпорация Майкрософт объединилась с Visigenic Software, чтобы перенести эти пакеты SDK на Macintosh и различные платформы UNIX.

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

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

Odbc что это за программа

Эта глава содержит общую информацию относительно ODBC и MyODBC.

Open Database Connectivity (ODBC) представляет собой интерфейс прикладной программы (API) для доступа к базам данных. Это основано на спецификациях Call-Level Interface (CLI) от X/Open и ISO/IEC для API баз данных. Как язык доступа к базам данных применяется Structured Query Language (SQL).

ODBC разработан для максимальной способности к взаимодействию, то есть одна прикладная программа может без изменения своего исходного текста работать через интерфейс с какой угодно СУБД. Прикладные программы вызывают функции интерфейса ODBC, которые выполнены в специфических для базы данных модулях, названных драйверами. Использование драйверов изолирует прикладные программы от специфических для базы данных обращений. Подробнее об этом можно почитать на http://www.microsoft.com/data.

Первое и главное: ODBC является спецификацией для API базы данных. Этот API независим от любой СУБД, операционной системы или языка программирования.

ODBC API основан на спецификациях CLI от X/Open и ISO/IEC. ODBC 3.x полностью соответствует обоим этим спецификациям, более ранние версии ODBC были основаны на предварительных версиях этих спецификаций, но полностью не выполняли их, зато добавили свойства, нужные только разработчикам оконных приложений, например, прокручиваемые курсоры.

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

Имеются два архитектурных требования:

  1. Прикладные программы должны быть способны обратиться ко многим СУБД, используя тот же самый исходный текст без того, чтобы его перетранслировать или заново компоновать.
  2. Прикладные программы должны быть способны обратиться ко многим СУБД одновременно (через разные драйверы).

ODBC успешно решает эти проблемы следующим способом:

ODBC является интерфейсом уровня вызовов: Чтобы решить проблему с тем, как прикладные программы обращаются ко многим СУБД, используя один и тот же исходный текст, существует стандарт CLI. ODBC содержит все функции в спецификации CLI и обеспечивает дополнительные функции, обычно требуемые прикладными программами.
ODBC определяет стандартный синтаксис SQL: В дополнение к стандартному интерфейсу уровня обращения (вызова), ODBC определяет стандартный синтаксис SQL. Он базируется на спецификации X/Open SQL CAE. Если используемый ODBC синтаксис отличается от того, который применяет конкретная СУБД, производится преобразование на лету. Однако, такие преобразования редки потому, что большинство СУБД уже используют стандартный синтаксис языка SQL.
ODBC предоставляет Driver Manager для управления одновременным доступом к многим СУБД: Хотя использование драйверов решает проблему одновременного доступа ко многим базам данных, код, необходимый, чтобы сделать это, может быть сложен. Прикладные программы которые разработаны, чтобы работать со всеми драйверами, не могут быть статически связаны с любыми драйверами. Вместо этого они должны загрузить драйверы во время выполнения и вызывать функции в них через таблицу указателей функций. Ситуация становится более сложной, если прикладная программа использует много драйверов сразу. Чтобы избавить программу от проблем с этим, ODBC обеспечивает Driver Manager. Администратор драйверов (Driver Manager) осуществляет все функции ODBC обычно как вызовы функций ODBC в драйверах и статически связан с прикладной программой или загружен прикладной программой во время выполнения. Таким образом, вызовы из прикладной программы функций ODBC по именам обрабатываются в Driver Manager вместо того, чтобы обращаться по указателю к каждому драйверу. ODBC предоставляет много возможностей СУБД, но не требует, чтобы каждый драйвер поддерживал их все.

Архитектура MyODBC имеет 5 главных компонентов как показано ниже:

  • Выбор сервера (MySQL) и связь с ним.
  • Передача на рассмотрение инструкции SQL для выполнения.
  • Получение результатов (если они есть).
  • Обработка ошибок.
  • Обработка транзакции или обратная перемотка.
  • Отсоединение от сервера.

  • Обработку Data Source Names (DSN).
  • Загрузку и выгрузку драйверов.
  • Обрабатку ODBC-обращения к функции или передачу вызова драйверу.

Как описано ранее, MySQL AB поддерживает два драйвера ODBC с открытыми исходными текстами, а именно MyODBC и MySQL ODBC 3.51, для работы с MySQL через ODBC API.

MySQL AB распространяет все свои программы под General Public License (GPL). Самую свежую версию MyODBC или MyODBC 3.51 (двоичные коды и исходные тексты) можно скачать с http://www.mysql.com. Подробно о MySQL ODBC рассказано на http://www.mysql.com/downloads/api-myodbc.html.

Для установки MyODBC на Windows Вы должны скачать соответствующий дистрибутивный файл для Вашей операционной системы с http://www.mysql.com/downloads/api-myodbc.html, распаковать его и выполнить файл SETUP.EXE .

2.7.2.1 Требования

  • MDAC , Microsoft Data Access SDK с www.microsoft.com/data.
  • Клиентская библиотека и включаемые файлы MySQL из 3.23.14 или выше. Это требуется потому, что MyODBC использует новые обращения, которые существуют только начиная с этой версии. http://www.mysql.com/downloads/index.html.

2.7.2.2 Построение MyODBC 3.51

MyODBC 3.51 поставляется в виде исходников с Makefile , который использует nmake . В дистрибутиве есть WIN_Makefile для формирования нормальной версии и WIN_Makefile_debug для формирования отладочной версии драйвера и DLL-библиотек. Для построения драйвера:

Скачайте исходники и распакуйте их в какой-нибудь каталог, скажем, myodbc3-src . Дальше выполните следующие команды для создания нормальной версии:

Command> cd myodbc3-src Command> nmake -f Win_Makefile Command> nmake -f Win_Makefile install

nmake -f Win_Makefile формирует версию драйвера и помещает двоичные файлы в подкаталог release . Команда nmake -f Win_Makefile install инсталлирует (вообще-то просто копирует) библиотеку драйвера и его DLL ( myodbc3.lib и myodbc3.dll ) в системный каталог ОС. Аналогично Вы можете сформировать версию для отладки, используя Win_Makefile_Debug :

Command> nmake -f Win_Makefile_debug Command> nmake -f Win_Makefile_debug install

Вы можете oчищать и восстанавливать драйвер, используя команды:

Command> nmake -f Win_Makefile clean Command> nmake -f Win_Makefile install

ОБРАТИТЕ ВНИМАНИЕ: Удостоверитесь, что определили правильные библиотеки пользователей MySQL и путь файлов заголовка в Makefile. Это принимает заданный по умолчанию путь C:\mysql\include и C:\mysql\lib\opt (для обычных DLL) или C:\mysql\lib\debug для отладочной версии.

Тестирование библиотек драйвера: после того, как библиотеки драйвера скопированы в системный каталог, Вы можете проверить качество их построения используя выборки, обеспеченные в подкаталоге samples каталога исходного текста:

Command> cd samples Command> nmake -f Win_Makefile all
2.7.2.3 Построение MyODBC 2.50

MyODBC распространяется в исходниках как VC Project для Windows. Можно формировать драйвер, используя прямые файлы проекта VC (.dsp и .dsw), имеющиеся в дистрибутиве.

Чтобы формировать драйвер самостоятельно под Linux, Вы должны иметь:

2.7.3.1 Требования

  • Клиентская библиотека и включаемые файлы MySQL из 3.23.14 или выше. Это требуется потому, что MyODBC использует новые обращения, которые существуют только начиная с этой версии. http://www.mysql.com/downloads/index.html
  • Библиотека MySQL должна быть конфигурирована с опцией —with-thread-safe-client. libmysqlclient должна быть установлена в системе как разделяемая библиотека.
  • Должен быть установлен один из администраторов драйверов unix ODBC:
    iodbc 3.0 или старше (http://www.iodbc.org) или
    unixodbc Alpha 3 или старше (http://www.unixodbc.org).
  • Если Вы используете character set , который не компилируется в библиотеку MySQL (по умолчанию там будут: latin1, big5, czech, euc_kr, gb2312, gbk, sjis, tis620 и ujis), Вы должны установить символьные определения mysql из каталога charset в SHAREDIR (по умолчанию это /usr/local/mysql/share/mysql/charsets ). Они должны уже быть на месте, если Вы установили сервер MySQL на той же самой машине.

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

2.7.3.2 Настройка

Единственные требуемые параметры; —with-mysql-libs=DIR и —with-mysql-includes=DIR . Здесь DIR задает каталог, где искать библиотеки и включаемые файлы mysql.

При использовании iodbc , если iodbc не установлен в заданное по умолчанию расположение ( /usr/local ), Вам придется использовать —with-iodbc=DIR или, если заголовки iODBC не находятся в DIR/include , придется использовать опцию —with-iodbc-includes=INCDIR . То же самое касается и библиотек: если они не в DIR/lib , примените явное указание параметром —with-iodbc-libs=LIBDIR .

При использовании unixODBC для создания configure ищите unixODBC вместо iODBC и используйте параметр —with-unixODBC=DIR . Здесь DIR задает то место, где установлен unixODBC.

Если звголовки и библиотеки unixODBC расположены не там, где надо (а надо в DIR/include и DIR/lib соответственно), укажите на них параметрами —with-unixODBC-libs=LIBDIR и —with-unixODBC-includes=INCDIR .

Вы можете определять другой префикс вместо /usr/local для установки, например, хранить MyODBC-драйверы в /usr/local/odbc/lib , для этого надо указать параметр —prefix=/usr/local/odbc .

Окончательно пример настройки выглядит так:

$ ./configure --prefix=/usr/local --with-iodbc=/usr/local \ --with-mysql-libs=/usr/local/mysql/lib/mysql \ --with-mysql-includes=/usr/local/mysql/include/mysql
2.7.3.3 Построение библиотек драйвера

Для построения библиотек драйвера Вы должны только выполнить:

$ make

Это должно сформировать библиотеки. Если происходят какие-то ошибки, исправьте их и продолжите построение. Если Вы не можете собрать пакет, пошлите детальный отчет по e-mail на myodbc@lists.mysql.com.

2.7.3.4 Установка библиотек драйвера
$ make install

  • libmyodbc3.so, libmyodbc3-3.51.01.so, здесь 3.51.01 является версией драйвера и libmyodbc3.a для MyODBC 3.51 или
  • libmyodbc.so, libmyodbc-2.50.39.so, здесь 2.50.39 является версией драйвера и libmyodbc.a для MyODBC 2.50

Обратите внимание , если Вы пробуете использовать make из SUN , Вы закончите с ошибками. С другой стороны, Make от GNU должен работать прекрасно на всех платформах.

2.7.3.5 Замечания для Mac OS X

Если Вы хотите формировать драйвер на Mac OS (Darwin), то используйте следующий пример выбора конфигурации:

$ ./configure --prefix=/usr/local --with-unixodbc=/usr/local \ --with-mysql-libs=/usr/local/mysql/lib/mysql \ --with-mysql-includes=/usr/local/mysql/include/mysql \ --disable-shared --enable-gui=no --host=powerpc-apple

Это предполагает, что unixodbc и mysql установлены в заданные по умолчанию расположения. Если это не так, сконфигурируйте все соответственно.

2.7.3.6 Создание файлов .so

На большинстве платформ MySQL не формирует или поддерживает .so файлы, так как формирование с общедоступными библиотеками вызывало проблемы в прошлом.

В таких случаях пользователь должен скачать дистрибутив MySQL и скомпилировать его с помощью:

--without-server --enable-shared

Если Вы все же хотите формировать общедоступные библиотеки драйвера, Вы должны определить опцию настройки —enable-shared .

Если Вы конфигурировали пакет с опцией —disable-shared , то Вы можете формировать .so-файл, используя следующее:

$ cd MyODBC-3.51.01 $ make $ cc -bundle -undefined error -o .libs/libmyodbc3-3.51.01.so *.o \ -lz -lc -lmysqlclient -L/usr/local/mysql/lib/mysql/ \ -compatibility_version 2 -current_version 2.0 Это формирует и помещает файл libmyodbc3-3.51.01.so в каталог .libs Скопируйте этот файл в каталог библиотек MyODBC (/usr/local/lib или что Вы там определили в --prefix). $ cd .libs $ cp libmyodbc3-3.51.01.so /usr/local/lib $ cd /usr/local/lib $ ln -s libmyodbc3-3.51.01.so libmyodbc3.so

Предостережение: Вы должны читать этот раздел только, если Вы заинтересованы в разработке пакета. Если Вы только хотите получить MyODBC 3.51 , Вы должны использовать стандартный дистрибутив (исходный текст или двоичные модули).

  • Скачайте BitKeeper с http://www.bitmover.com/cgi-bin/download.cgi. Вам нужен Bitkeeper 2.0 или более новый, чтобы обратиться к архиву.
  • Установите его согласно прилагаемым инструкциям.
  • Когда BitKeeper установлен, сначала перейдите в каталог, откуда хотите работать, а затем используйте эту команду, если Вы хотите получить снимок исходных текстов MyODBC 3.51:

shell> bk clone bk://work.mysql.com:7002/myodbc-3.51
shell> cd myodbc-3.51 shell> bk -r edit shell> aclocal; autoheader; autoconf; automake; shell> ./configure # Здесь напишите параметры shell> make

Драйвер MySQL ODBC может использоваться на всех основных платформах, поддерживаемых MySQL:

  • Все версии Windows: 95/98/NT/ME/2000/XP
  • OS/2
  • Mac OS X Server
  • Amiga
  • Все версии Unix:
    • AIX
    • BSDI
    • DEC
    • FreeBSD
    • HP-UX
    • Linux
    • NetBSD
    • OpenBSD
    • SGI Irix
    • Solaris
    • SunOS
    • SCO OpenServer
    • SCO UnixWare
    • Tru64 Unix

    Вообще, MyODBC (3.51) поддержан на всех платформах, которые MySQL поддерживает. Если двоичный дистрибутив не доступен для специфической платформы, то Вы можете формировать драйвер самостоятельно, скачав его исходники. А чтобы это стало простым для других пользователей, пошлите готовые двоичные модули на myodbc@lists.mysql.com.

    MySQL обеспечивает семейство пользователей своих пакетов списком рассылки, где новички получают решения от опытных пользователей, посылая запросы на myodbc@lists.mysql.com.

    Чтобы подписаться на список рассылки MyODBC, пошлите сообщение на myodbc-subscribe@lists.mysql.com. Чтобы отписаться от списка рассылки MyODBC, пошлите сообщение на myodbc-unsubscribe@lists.mysql.com. Вы можете также просматривать архив списка рассылки на http://lists.mysql.com .

    • Ошибки исправлялись быстро.
    • Решать любые проблемы с MyODBC или MySQL.
    • Была возможность заказывать свойство в драйвере.
    • Иметь расширение драйвера.
    • Иметь патчи, поставленные непосредственно в Ваш почтовый ящик.
    • Иметь прямое взаимодействие с разработчиками MySQL и MyODBC.

    Вы должны получить контракт поддержки от MySQL AB . Фирма MySQL AB поддерживает различные типы лицензий поддержки, чтобы помочь Вам выбрать именно то, что нужно. Для получения большего количества информации относительно поддержки MySQL, посетите сайт https://order.mysql.com или пошлите e-mail на licensing@mysql.com.

    Как только Вы купите поддержку, Вы сможете посылать запросы или отчеты об ошибках, используя MySQL support wizard на http://support.mysql.com, затем группа разработки MySQL начнет работать над Вашей проблемой немедленно.

    Если Вы сталкиваетесь с трудностями с MyODBC или с MyODBC 3.51 , Вы должны запустить создание файла протокола из ODBC Manager (протокол Вы получаете при запросе файлов регистрации из ODBC ADMIN ) или протокол MyODBC (или MyODBC 3.51 ).

    Для получения трассировки ODBC через Driver Manager, Вы должны сделать следующее:


      Открыть ODBC Data Source Administrator:

      • Кликните на Start , укажите на Settings и запустите Control Panel .
      • На компьютерах под Microsoft Windows 2000 , сделайте двойной щелчок на Administrative Tools и сделайте двойной щелчок на Data Sources (ODBC) . На компьютерах с более ранней версией Microsoft Windows дважды щелкните на 32-bit ODBC или на ODBC . Появится диалоговое окно ODBC Data Source Administrator .

      TraceFile = /tmp/odbc.trace Trace = 1

      • Гарантируйте, что Вы используете myodbc3d.dll , но не myodbc3.dll для MyODBC 3.51 (или myodbcd.dll для MyODBC ). Самый простой способ сделать это состоит в том, чтобы получить myodbc3d.dll (или myodbcd.dll ) из дистрибутива MyODBC 3.51 и скопировать поверх myodbc3.dll (или myodbc.dll ), который, скорей всего, расположен в каталоге C:\windows\system32 или в C:\winnt\system32 . Обратите внимание, что Вы, вероятно, захотите восстановить старый файл myodbc.dll после окончания отладки, поскольку он работает намного быстрее, чем myodbc3d.dll (или myodbcd.dll ), так что сделайте резервную копию оригинальной DLL.
      • Отметьте опцию Trace MyODBC на экране конфигурирования соединения через MyODBC. Протокол будет записан в файл C:\myodbc.log . Если опция трассировки отсутствует на вышеупомянутом экране, это означает, что Вы не используете драйвер myodbcd.dll . Под Linux или если Вы используете связь DSN-Less, Вы должны обеспечить в строке подключения параметр OPTION=4 .
      • Запустите Вашу прикладную программу и попробуйте получить то, что вызвало проблемы. Проверьте файл протокола MyODBC, чтобы выяснить, что же могло быть неправильно. Если Вы выясняете, что пошло не так, пожалуйста, пошлите сообщение на myodbc@lists.mysql.com (если у Вас контракт о поддержке с MySQL AB, пишите на support@mysql.com) с кратким описанием проблемы и со следующей дополнительной информацией:
        • Версия MyODBC
        • Версия и тип используемого ODBC Driver Manager
        • Версия сервера MySQL
        • ODBC0трассировка из Driver Manager
        • Файл протокола драйвера MyODBC
        • Простой воспроизводимый пример

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

        • Если Вы используете Access 2000, Вы должны получить и установить самый новый (версия 2.6 или выше) пакет Microsoft MDAC ( Microsoft Data Access Components ) с http://www.microsoft.com/data. Это устранит следующую ошибку в Access: когда Вы экспортируете данные в MySQL, имена таблицы и столбца не определены. Другой путь обхода этой ошибки состоит в том, чтобы поставить MyODBC не ниже 2.50.33 и MySQL не ниже 3.23, которые вместе обеспечивают обход этой ошибки. Вы должны также получить и применить Microsoft Jet 4.0 Service Pack 5 (SP5), который может быть найден на http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114. Это исправит ряд ситуаций, в которых столбцы помечаются как удаленные ( #deleted# ) в Access. Обратите внимание, что, если Вы используете MySQL 3.22, Вы должны применить патч для MDAC и использовать MyODBC 2.50.32 или 2.50.34 и выше для решения проблемы.
        • Для всех версий Access Вы должны включить опцию MyODBC Return matching rows . Для Access 2.0 Вы должны дополнительно включить опцию Simulate ODBC 1.0 .
        • Вы должны иметь timestamp во всех таблицах, которые Вы хотите модифицировать. Для максимальной мобильности TIMESTAMP(14) или просто TIMESTAMP рекомендуются вместо других вариантов TIMESTAMP(X) .
        • Вы должны иметь первичный ключ в таблице. Если это не так, новые или модифицируемые строки могут обнаруживаться как #DELETED# .
        • Используйте только поля DOUBLE с плавающей точкой. Access рушится при сравнении с single-полями с плавающей точкой. Это приводит к тому, что новые или модифицируемые строки могут обнаруживаться как #DELETED# , или Вы не можете находить или модифицировать строки.
        • Если Вы связываете таблицу, которая имеет BIGINT как один из столбца, через MyODBC, то результаты будут отображаться как #DELETED . Обойти это можно так:
          • Создайте еще один фиктивный столбец с TIMESTAMP как тип данных, предпочтительно TIMESTAMP(14) .
          • Проверьте Change BIGINT columns to INT в диалоге опций соединения в ODBC DSN Administrator.
          • Удалите связь таблицы из и пересоздайте ее.

          Dim myconn As New ADODB.Connection Dim myrs As New Recordset Dim mySQL As String Dim myrows As Long myconn.Open "DSN=MyODBCsample" mySQL = "SELECT * from user" myrs.Source = mySQL Set myrs.ActiveConnection = myconn myrs.CursorLocation = adUseClient myrs.Open myrows = myrs.RecordCount myrs.Close myconn.Close


            Если Вы имеете проблемы с датами, попробуйте выбирать их как строки, использующие функцию CONCAT() . Например:

          select CONCAT(rise_time), CONCAT(set_time) from sunrise_sunset;

          • Вставьте строки, используя инструмент командной строки mysql .
          • Создайте DSN-файл, использующий MyODBC-драйвер, например, my.
          • Откройте Word.
          • Создайте пустой новой документ.
          • При использовании панели инструментов Database, нажмите кнопку insert database.
          • Нажмите кнопку Get Data.
          • С правой стороны окна Get Data нажмите кнопку Ms Query.
          • В Ms Query создайте New Data Source, используя DSN-файл my.
          • Выберите новый запрос.
          • Выберите столбцы, которые Вы хотите.
          • Создайте фильтр, если он нужен.
          • Выполните сортировку, если она нужна.
          • Установите Return Data в Microsoft Word.
          • Нажмите кнопку Finish.
          • Нажмите Insert data и выберите записи.
          • Теперь после нажатия на OK строки появятся в Вашем документе Word.

          fReg:= TRegistry.Create; fReg.OpenKey('\Software\ODBC\ODBC.INI\DocumentsFab', True); fReg.WriteString('Database', 'Documents'); fReg.WriteString('Description', ' '); fReg.WriteString('Driver', 'C:\WINNT\System32\myodbc.dll'); fReg.WriteString('Flag', '1'); fReg.WriteString('Password', ''); fReg.WriteString('Port', ' '); fReg.WriteString('Server', 'xmark'); fReg.WriteString('User', 'winuser'); fReg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources', True); fReg.WriteString('DocumentsFab', 'MySQL'); fReg.CloseKey; fReg.Free; Memo1.Lines.Add('DATABASE NAME='); Memo1.Lines.Add('USER NAME='); Memo1.Lines.Add('ODBC DSN=DocumentsFab'); Memo1.Lines.Add('OPEN MODE=READ/WRITE'); Memo1.Lines.Add('BATCH COUNT=200'); Memo1.Lines.Add('LANGDRIVER='); Memo1.Lines.Add('MAX ROWS=-1'); Memo1.Lines.Add('SCHEMA CACHE DIR='); Memo1.Lines.Add('SCHEMA CACHE SIZE=8'); Memo1.Lines.Add('SCHEMA CACHE TIME=-1'); Memo1.Lines.Add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT'); Memo1.Lines.Add('SQLQRYMODE='); Memo1.Lines.Add('ENABLE SCHEMA CACHE=FALSE'); Memo1.Lines.Add('ENABLE BCD=FALSE'); Memo1.Lines.Add('ROWSET SIZE=20'); Memo1.Lines.Add('BLOBS TO CACHE=64'); Memo1.Lines.Add('BLOB SIZE=32'); AliasEditor.Add('DocumentsFab','MySQL',Memo1.Lines);

          C++ Builder Тестировался с BDE Version 3.0. Единственная известная проблема состоит в том, что, когда схема таблицы изменилась, поля запроса не модифицируются. BDE, кажется, не распознает первичные ключи, только PRIMARY индекс, хотя это не было проблемой. Vision Вы должны использовать параметр Return matching rows . Visual Basic Чтобы модифицировать таблицу, Вы должны определить первичный ключ для таблицы. Visual Basic с ADO не может обрабатывать большие целые числа. Это означает, что некоторые запросы подобно SHOW PROCESSLIST не будут работать правильно. Установите опцию OPTION=16834 в строке подключения ODBC или задайте параметр Change BIGINT columns to INT на экране соединения MyODBC. Вы можете также устанавливать опцию Return matching rows . VisualInterDev Если Вы получаете ошибку [Microsoft][ODBC Driver Manager] Driver does not support this parameter , причина может быть в том, что Вы имеете BIGINT в Вашем результате. Попробуйте установить параметр Change BIGINT columns to INT на экране соединения MyODBC. Visual Objects Вы должны использовать параметр Don’t optimize column widths . MS Visio Enterprise 2000 Пользователи сделали диаграмму модели базы данных, подключаясь из MS Vision Enterprise 2000 к MySQL через MyODBC (2.50.37 или более новый) и используя функцию обратной разработки в Visio, чтобы восстановить информацию относительно базы данных (Visio показывает все определения столбца, первичные ключи, индексы и так далее). Также разрабатывали новые таблицы в Visio и экспортировали их в MySQL через MyODBC. Все работало.

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

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