Страница 13 из 17 Где хранятся настройки об источнике данных ODBC? В предыдущих шагах "Установка соединения" и "Продолжаем устанавливать соединение" мы с Вами пользовались утилитой Администратор ODBC для настройки соединения. Мы его находили в панели управления. На самом деле это обычная программа Odbcad32.exe, которая находится по определенному пути. Тo есть ее можно напрямую запускать из программы и требовать, чтобы пользователь установил данные. Но есть и другой выход. Данные о на строке источников ODBC хранятся в реестре в разделе SOFTWARE/ODBC. Вот эти данные. Мы теперь можем при желании вручную их править или программным путем, прося пользователя только указать файл. Итак, путь такой: HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\
Еще один способ программно воздействовать на настройки драйверов ODBC - это использовать функцию SQLConfigDataSource(). Итак мы может настраивать ODBC следующими методами: - Утилита администрирования.
- Реестр.
- Функция SQLConfigDataSource().
Функция SQLConfigDataSource() Эта функция имеет следующий вид: BOOL SQLConfigDataSource ( HWND hwndParent,// Указатель на окно вызвавшее функцию WORD fRequest,// Тип запроса LPCSTR lpszDriver,// Пользовательское имя драйвера LPCSTR lpszAttributes// атрибуты );
Функция ворачивает TRUE, если выполнена удачно и FALSE если не удачно. Атрибут описывает тип команды и может быть следующим: - ODBC_ADD_DSN - Добавляем новый источник данных пользователя.
- ODBC_CONFIG_DSN - Выбор конфигурации существующего источника данных пользователя.
- ODBC_REMOVE_DSN - Удаляем существующий источник данных пользователя.
- ODBC_ADD_SYS_DSN - Добавляем новый источник данных системы.
- ODBC_CONFIG_SYS_DSN - Изменяем существующий источник данных системы.
- ODBC_REMOVE_SYS_DSN - Удаляем существующий источник данных системы.
- ODBC_REMOVE_DEFAULT_DSN - Удаляем заданный по умолчанию раздел спецификации источника данных из системы
Давайте попробуем ??? // TestConfig.cpp : Defines the entry point for the console application. //
#include "stdafx.h" #include "windows.h" #include "odbcinst.h" #include "iostream.h"
void main() { if (!SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Excel Driver (*.xls)", "DSN=New Excel Data Source\0" "Description=New Excel Data Source\0" "FileType=Excel\0" "DataDirectory=C:\\ExcelData\0" "MaxScanRows=20\0")) { cout << "Error config ODBC" << endl; } }
Только для того, чтобы его увидеть надо сначало закрыть панель управления, а потом опять открыть. После этого вы увидите, что новый источник данных добавлен. |