Расширяя этот вопрос Что такое ConnectionString для создания OdbcConnection для доступа к файлу mdb, я хотел бы знать, как написать строку подключения для подключения к файлу .mdb из 64-битного приложения, за исключением того, что на этот раз я пытаюсь сделать это из 64-битное приложение С++ вместо С#. Не уверен, что это имеет значение, поэтому пишу сюда :)
Когда я компилирую для 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