Разширяване на този въпрос Какво е ConnectionString за създаване на OdbcConnection за достъп до mdb файл, бих искал да знам как да напиша връзката за свързване към .mdb файл от 64-битово приложение - освен че този път се опитвам да го направя от c++ 64-битово приложение вместо C#. Не съм сигурен дали това има значение, затова го сложих тук :)
Когато компилирам за 32 бита, мога да се свържа с моя mdb файл с
"driver={Microsoft Access Driver (*.mdb)};Dbq=mlog.mdb;UID=;PWD="
Не съм сигурен дали това е оптималният начин, но работи.
Сега трябва да компилирам приложението си в 64 бита. низът за връзка от по-горе вече не работи, затова проверих http://www.connectionstrings.com/access/ и опитах
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mlog.mdb;Persist Security Info=False;"
но без успех.
използвам
ret = SQLDriverConnect(dbc, 0, connectionstring, SQL_NTS, outstr, 1024, &outstrlen, SQL_DRIVER_NOPROMPT);
if (SQL_SUCCEEDED(ret)) ...
да опитате да се свържете. Но винаги се проваля. когато извикам SQLGetDiagRec(), той връща празни низове.
Инсталирах и 64-битовите драйвери на Access 2010. Проверява се c:\windows\system32\odbcad32.exe, че има инсталиран "Драйвер за достъп на Microsoft (*.mdb, *.accdb)", версия 14.00.7010.1000 в ACEODBC.DLL.
какво не е наред тук
Sql...
са специфични за SQL Server и няма да работят с OLEDB драйвери за Access (и други бази данни). Вместо това трябва да се използват обектитеOleDb...
. Има лиOleDbDriverConnect
еквивалент наSQLDriverConnect
обекта, който в момента се опитвате да използвате? - person Gord Thompson   schedule 19.10.2013