Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / SQLConfigDataSource / 5 сообщений из 5, страница 1 из 1
11.09.2006, 17:54
    #33978960
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLConfigDataSource
В мсдн приведен следующий пример по использованию этой функции:
Код: plaintext
1.
2.
3.
4.
5.
SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)", 
                   "DSN=New Excel Data Source\0" 
                   "Description=New Excel Data Source\0" 
                   "FileType=Excel\0" 
                   "DataDirectory=C:\\EXCELDIR\0" 
                   "MaxScanRows=20\0");

я пытаюсь организовать автоматическое заполнение DSN таким образом

Код: plaintext
1.
2.
3.
4.
5.
6.
CString str, tmp, dbpath, dbname; //- задаются пользователем

tmp.Format(_T("DSN=%s\0") _T("Description=PCAudit Database\0") _T("FileType=Access\0")
				   _T("DefaultDir=%s\0") _T("DataDirectory=%s\0") _T("DBQ=%s%s.mdb\0")
				   _T("MaxScanRows=20\00"), str, dbpath, dbpath, dbpath, dbname);
if (!SQLConfigDataSource(GetSafeHwnd(), ODBC_ADD_DSN, _T("Microsoft Access Driver (*.mdb)"), tmp))
{/*обработка ошибки*/}

так вот, на выходе у меня не получается задать ODBC параметры, т.к. Format сохраняет после преобразования только первый параметр. Если делаешь все руками как в примере, то все ОК.
Как быть?
Спасибо!
--------------------------------------------------------------
...
Рейтинг: 0 / 0
11.09.2006, 20:06
    #33979207
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLConfigDataSource
CerebrumКак быть?Делать все руками как в примере.
...
Рейтинг: 0 / 0
12.09.2006, 07:51
    #33979575
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLConfigDataSource
White OwlДелать все руками как в примере.
Неужели я стал бы беспокоить людей по пустякам если меня этот вариант бы устраивал - мне нужна динамика
...
Рейтинг: 0 / 0
12.09.2006, 19:39
    #33982269
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLConfigDataSource
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
struct key_value_pair ODBC_KeyWords[] = {{"FileType=Access", NULL}, {"DefaultDir=%s", NULL}, ....

buf = malloc(большая цифра);
d = buf;
for(i =  0 ; i < sizeof(ODBC_KeyWords) / sizeof(ODBC_KeyWords[ 0 ]); i++ ) {
    sprintf(d, ODBC_KeyWords[i].format, ODBC_KeyWords[i].value);
    d += strlen(d)+ 1 ;
}
*(d++) =  0 ; // завершающий второй нуль
SQLConfigDataSource(GetSafeHwnd(), ODBC_ADD_DSN, _T("Microsoft Access Driver (*.mdb)"), buf));
напильник в руки и вперед
...
Рейтинг: 0 / 0
13.09.2006, 07:53
    #33982743
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLConfigDataSource
спасибо!

--------------------------------------------------------------
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / SQLConfigDataSource / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]