Настройка драйвера ODBC требует каталог, где будут хранится файлы. Естественно, что каталог может и не присутствовать на компьютере. Наиболее надежно использовать тот каталог откуда запущена программа. Ниже предлагается один из способов. Здесь получается текущий каталог и собирается на основе него строка конфигурации. Все параметры перечисляются через точку с запятой. Как ни странно, но это работает. Зато не нужно замены конечных символов параметров на \0\0.
// TestMyDir.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "afxwin.h" #include "odbcinst.h" #include "iostream.h" #pragma comment(lib,"odbc32.lib") #pragma comment(lib,"odbccp32.lib") void main() { char buffer_path[100]; GetCurrentDirectory(sizeof(buffer_path),buffer_path); CString path=buffer_path; CString temp; temp="DSN=New Excel Data Source;"; temp+="Description=New Excel Data Source;"; temp+="DriverId=278;"; temp+="DefaultDir="; temp+= path; temp+=";MaxScanRows=8;\0\0"; char *szAttributes=temp.GetBuffer(temp.GetLength()); if (!SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Excel Driver (*.xls)",szAttributes)) { cout << "Error config ODBC" << endl; } }