Пишу простенький интерфейс для ODBC'шных баз данных на C++.
Под Windows DSN-less соединение проходит нормально, а вот под wine
при выполнении SQLDriverConnect() выдается:
ErrorMsg=[unixODBC]Could not find DSN in connect string
Сдается мне, что причина в недоработанности ODBC-драйвера (libmdbtools),
и что он не понимает параметр DBQ в строке соединения.
В какую сторону копать ?
Вот фрагмент текста программы:
#define szDSN "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\test.mdb"
....
nResult = pSQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
printf("SQLAllocHandle: %d\n",nResult);
nResult = pSQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
printf("SQLSetEnvAttr: %d\n",nResult);
nResult = pSQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDBC);
printf("SQLAllocHandle: %d\n",nResult);
// nResult = pSQLConnect(hDBC, (SQLTCHAR *)szSource, SQL_NTS, (SQLTCHAR *)szUsername, SQL_NTS, (SQLTCHAR *)szPassword, SQL_NTS);
nResult = pSQLDriverConnect(hDBC, NULL, (SQLTCHAR *)szDSN, SQL_NTS, (SQLTCHAR *)szDSNout, strlen((char *)szDSNout), (SQLSMALLINT *)aLength, SQL_DRIVER_NOPROMPT);
printf("SQLDriverConnect: %d\n",nResult);
/etc/odbcinst.ini:
[{Microsoft Access Driver (*.mdb)}]
Description = Microsoft Access Driver
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage = 1
CPTimeout =
CPReuse =
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Odbc DSN к firebird во FreeBSD (2010)
- Форум Как открыть базу MSSQL, у которой имя - на русском, через FreeTDS ODBC ? (2007)
- Форум undefined reference to `SQLAllocHandle' (2008)
- Форум Не могу настроить unixODBC (2013)
- Форум Oracle 11g XE и ODBC (2012)
- Форум С++ + OracleDB OCCI (2012)
- Форум ODBC access sniffing (2003)
- Форум MS Access приложения (2007)
- Форум Аналог MS Access? (2003)
- Форум Нет ли ODBC драйвера для MS Access под Linux сразу (2002)