Использование ODBC в Visual C++ - Где хранятся настройки об источнике данных ODBC?
ОГЛАВЛЕНИЕ
Где хранятся настройки об источнике данных 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;
}
}
Только для того, чтобы его увидеть надо сначало закрыть панель управления, а потом опять открыть. После этого вы увидите, что новый источник данных добавлен.