|
|
| ::Главная страница :: С++/Си :: Статьи |
Как
программно создать источник данных?
Для этой цели служит функция SQLConfigDataSource(). Она позволяет создать пользовательский или системный источник данных (DSN - DataSource Name). Эта же функция позволяет модифицировать или удалить DSN.
BOOL SQLConfigDataSource(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszAttributes);
Здесь hwndParent - хэндл окна, которому будут направляться сообщения об ошибках (в случае использования NULL эти сообщения будут подавляться), fRequest - тип выполняемого действия (к примеру, ODBC_ADD_DSN - добавить пользовательский DSN, ODBC_ADD_SYS_DSN - добавить системный DSN), lpszDriver - точное имя драйвера ODBC, так, как оно выглядит в диалоге настройки ODBC DSN, например "Microsoft Access Driver (*.mdb)" или "SQL Server". Строка lpszAttributes содержит основные параметры подключения к источнику данных:
Параметры разделены между собой символом '\0', конец строки отмечается дополнительным символом '\0'.
DSN=CustomDsn\0UID=username\0PWD=password\0DATABASE=CustomDataBase\0\0
Обязательным является имя DSN. Все остальные параметры могут быть запрошены при подключении к источнику данных. Хотя различные драйверы ODBC в этом отношении могут вести себя по-разному - например, для драйвера MS SQLServer обязательным параметром также является и имя сервера.
///////////////////////////////////////////////////////////
//// Пример создания источника данных для
// ODBC драйвера для Microsoft Excel 97
//
#include <windows.h>
#include <odbcinst.h>
#pragma comment(lib, "odbccp32")
#pragma comment(lib, "user32")
void main()
{
char* driver = "Microsoft Excel Driver (*.xls)";
char* params = "DSN=MyTable\0DefaultDir=D:\\Document\0""DBQ=D:\\Document\\MyTable.xls\0";
// Создадим пользовательский DSN
SQLConfigDataSource(NULL, ODBC_ADD_DSN, driver, params);
}
Надеюсь, для Вас не будет слишком большим сюрпризом узнать, что всю информацию об источниках данных и драйверах ODBC Windows хранит в реестре. А если быть совсем точным, то в ключах
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI (пользовательские DSN) HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI (системные DSN) HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI (драйверы ODBS)
Информацию о том, как правильно заполнять строку params, можно извлечь самостоятельно, создавая при помощи ODBC-администратора источники данных для различных драйверов Вашей системы и анализируя состав параметров и присвоенные им значения ключей реестра, относящихся к созданным источникам. Надеюсь также, что не сильно шокирую Вас, если скажу, что приведенный выше пример был написан именно так.
|
Тематические
ссылки
|
| Ваша ссылка | Ваша ссылка |
|
Обмен кнопками, ведение статистики, реклама. |
|||