Как создать файловый источник данных

Обновлено: 07.07.2024

ODBC (Open Database Connectivity) – открытый интерфейс доступа к БД, который разработан фирмой Microsoft. Интерфейс предоставляет унифицированные средства взаимодействия прикладной программы (клиента) и сервера (базы данных).

Базу интерфейса ODBC составляет спецификация CLI-интерфейса, ISO/IEC для баз данных API и язык SQL.

Интерфейс ODBC был спроектирован для поддержки наилучшей интероперабельности приложений, обеспечивающей унифицированный доступ любого приложения, которое использует ODBC, к разным источникам данных. Например, если приложение, которое соответствует стандарту SQL и ODBC, первоначально было разработано для работы с БД MS Access, а после таблицы этой базы перенесли в БД MS SQL Server или БД Oracle, то приложение сможет и далее выполнять обработку этих данных без внесения каких-либо изменений.

Создание источника данных

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

Утилита ODBC

Готовые работы на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимость

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

Создание источника данных с использованием ODBC API

Две функции ODBC API ConfigDSN и SQLConfigDataSource, которые позволяют регистрировать новые источники данных или удалять информацию о них из реестра Windows (а также из файла ODBC.ini) находятся в DLL-библиотеке ODBCCP32.DLL.

Функция ConfigDSN отвечает за добавление, изменение или удаление источников данных и описывается следующим образом:

hwndParent – параметр, определяющий дескриптор окна или NULL. При неуказанном дескрипторе в ходе выполнения данной функции не будет отображаться окно с предложением уточнения параметров.

fRequest – параметр, указывающий тип запроса, который может принимать одно из следующих значений:

  • ODBC_REMOVE_DSN – удаляет существующий источник данных;
  • ODBC_CONFIG_DSN – изменяет существующий источник данных;
  • ODBC_ADD_DSN – добавляет новый источник данных.

lpszDriver – параметр, содержащий описание драйвера.

lpszAttributes – параметр, содержащий список атрибутов в виде «ключевое слово = значение».

Функция SQLConfigDataSource описывается следующим образом:

Параметры данной функции аналогичны параметрам предыдущей функции и другими значениями параметра fRequest:

Итак что такое DSN изнутри давайте его разберем на части и посмотрим на него в разрезе. Для этого в администраторе источников данных можно создать так называемый файл DSN в который конструктор заботливо выложит все параметры. Именно они нам понадобятся при создании источника данных.

Чтобы создать файл делаем следующие действия. В администраторе ODBC выбираем вкладку Файловый в данной закладке можно создавать файлы DSN с настройками в указанном месте.


Жмем на кнопку добавить и выбираем нужный нам для работы драйвер. Мне нужно будет связываться с базой данных Paradox поэтому я выбрал драйвер Microsoft Paradox Driver (*.db) и нажал клавишу далее.


В следующем окне нужно просто задать имя куда будут сохранены настройки DSN. и жмем на кнопку далее.


В последнем окне мы нажимаем кнопку готово соглашаясь со всем что предложит нам мастер. Далее так как мы только выбрали драйвер мастер предложит нам указать место где расположена база и куда подключатся. В данный момент никуда не будем подключатся и поэтому просто нажмем на ОК. Результатом все действий будет создание файла MyDSN.dsn в моих документах либо в том месте которое указали Вы.


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


Первым делом нужно проверить что драйвер источника данных установлен на машине пользователя иначе предложить например установить его из дистрибутива поставки программы. Либо тихонько сделать это самостоятельно но это уже совсем другая история. Тут мы предполагаем что драйвер существует.

Для успешной генерации схемы БД необходимо создать ODBC-соединение.

1. Необходимо запустить администратор источников данных ODBC (C:\Documents and Settings\All Users\Главное меню\Программы\Администрирование → Источники данных ODBC) (рис. 4.6).

2. Далее необходимо перейти на вкладку «Файловый DSN» и создать новый источник нажатием кнопки «ДОБАВИТЬ». В появившемся окне необходимо выбрать Microsoft Access Driver и нажать «Далее» (рис. 4.7).


Рис. 4.6. Окно администратора источников данных ODBC


Рис. 4.7. Создание нового источника данных

3. В следующем окне нажатием кнопки «Обзор» необходимо выбрать файл ERWin, содержащий физическую модель (при указании типа файлов «Источники ODBC» необходимо заменить на «Все файлы») (рис. 4.8).


Рис. 4.8. Выбор файлового источника данных

4. В следующем окне нужно нажать кнопку «Готово», после чего предложено будет создать или выбрать БД (рис. 4.9).


Рис. 4.9. Создание пустой БД


Рис. 4.10. Ввод дополнительных параметров

4.4. Генерация схемы бд

1. Для того чтобы сгенерировать схему БД, необходимо выбрать пункт меню ToolsForward Engineer/Schema Generation (рис. 4.11).


Рис. 4.11. Диалоговое окно Access Schema Generation

2. Необходимо проверить параметры генерации, по необходимости внести коррективы, после чего нажать кнопку “Generate”.

3. Заполним появившееся окно (имя пользователя и пароль – см. рис. 4.10, и Database – выбрать созданную пустую базу данных). Затем нажать кнопку “Connect” (рис. 4.12).


Рис. 4.12. Соединение с БД

4. Далее будет сгенерирована схема БД. В ходе генерации могут возникать ошибки. Чтобы закончить генерацию с ошибками, необходимо нажать кнопку “Continue”. По окончании процесса генерации нужно открыть БД и проверить полученные результаты.

4.5. Просмотр результатов

1. После того, как схема будет сгенерирована, необходимо открыть сформированную базу данных, просмотреть созданные таблицы. Для этого запустите MS Access, в меню «Файл» выберите команду «Открыть», в диалоговом окне укажите файл созданной БД. Для того чтобы просмотреть схему данных, необходимо выбрать пункт меню: «Сервис» → «Схема данных» или нажать соответствующую кнопку на панели инструментов. Для того чтобы проверить правильность связей, необходимо заполнить таблицы.

Схема БД, сгенерированной на основе модели, представленной на рис. 4.5, выглядит следующим образом (рис.4.13):


Рис. 4.13. Схема данных MS Access

2. Чтобы определить, насколько правильна логика связей, насколько точно сгенерирована схема БД, необходимо заполнить таблицы БД. Следует обратить внимание на то, что сначала заполняются родительские таблицы, а только потом – дочерние. Пример заполнения таблиц представлен на рис. 4.14 – 4.15.

Для обеспечения определенного уровня программной абстракции ODBC обеспечивает взаимодействие с конкретным форматом данных через драйвер ODBC , поставляемый разработчиком соответствующего формата DB . Чтобы ODBC поддерживало соответствующий формат данных, разработан перечень требований, который должен обеспечить разработчик драйвера (поставщик соответствующих данных). Этот перечень требований называется уровнем согласования.

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

Когда приложение использует функции базового уровня согласования, то в проверке возможностей драйвера нет необходимости. Но если приложение базы данных хочет обратиться к функции ODBC , не принадлежащей базовому уровню согласования, то оно должно предварительно удостовериться, что драйвер эту функцию поддерживает. Для выяснения возможности драйвера поддерживать какую-то функцию в ODBC существует специальная тестовая функция SQLGetFunctions() . Аналогичные требования согласования существуют и для синтаксиса SQL .

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

  • Настройка ODBC
  • Подключение к источнику данных
  • Получение информации о возможностях драйвера ODBC
  • Подготовка к выполнению SQL -запросов
  • SQL -запросы на получение выборки данных
  • Получение данных
  • Отключение от источника данных

Настройка ODBC

Настройка ODBC включает в себя действия, которые нужно выполнить для нормальной работы приложения. Прежде всего нужно запустить системную утилиту ODBC Data Source Administrator . Она запускается из командной строки Пуск/Выполнить операционной системы командой odbcad32


В результате появится окно администратора


Окно администратора имеет несколько вкладок, в том числе соответствующие типу DSN , поддерживаемому ODBC

  • User DSN - пользовательский источник данных. Является локальным для того компьютера, на котором он был создан, и может применяться только создавшим его пользователем
  • System DSN - системный источник данных. Принадлежит тому компьютеру, на котором создан. Любой обладающий достаточными правами пользователь может обращаться к этому источнику данных
  • File DSN - файловый источник данных. Обеспечивает доступ к конкретному файлу базы данных

Каждая вкладка делает свою запись в системном реестре, например


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

Иными словами, с помощью утилиты ODBC Data Source Administrator мы устанавливаем ассоциативную связь между файлом с данными конкретной структуры и соответствующим драйвером, понимающим такой формат данных. Этой связи мы присваиваем имя ( DSN ), которое затем должны использовать в своем приложении для работы с этими данными, но уже с помощью стандартных функций ODBC . Таким образом достигается отделение (абстракция) функций обработки данных от конкретной структуры данных. Кроме этого, в DSN содержится информация местонахождения файлов-таблиц с данными. Перенеся приложение и данные в другое место или компьютер, достаточно установить настройки соответствующего DSN и приложение будет нормально работать!!!

Читайте также: