Командная строка для изменения пути к файлу .mdb для MS Access ODBC System DSN? - PullRequest
2 голосов
/ 05 августа 2010

Какую командную строку odbcconf.exe можно использовать для изменения пути к файлу MS Access .mdb для уже существующего системного DSN?

Ответы [ 2 ]

2 голосов
/ 06 августа 2010

Вы должны сделать это, изменив реестр. Что-то вроде этого примера взято из сети, которую я использовал до

rem -----Author: Jim Michaels
rem -----copy the drivers where all good little ODBC drivers go
if errorlevel 1 goto bye
copy myodbcd.dll C:\WINDOWS\SYSTEM
if errorlevel 1 goto bye
rem ----create a .REG file to make registry entries
echo REGEDIT4>myodbc.reg
echo.>>myodbc.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\MySQL]>>myodbc.reg
echo "APILevel"="2">>myodbc.reg
echo "ConnectFunctions"="YYN">>myodbc.reg
echo "Driver"="C:\\WINDOWS\\SYSTEM\\myodbc.dll">>myodbc.reg
echo "DriverODBCVer"="02.50">>myodbc.reg
echo "FileExtns"="*.txt">>myodbc.reg
echo "FileUsage"="0">>myodbc.reg
echo "Setup"="C:\\WINDOWS\\SYSTEM\\myodbc.dll">>myodbc.reg
echo "SQLLevel"="1">>myodbc.reg
echo.>>myodbc.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]>>myodbc.reg
echo "MySQL"="Installed">>myodbc.reg
echo.>>myodbc.reg
rem -----install the registry entries by executing the .REG file
start /wait myodbc.reg
rem ----clean up after we are done installing
del myodbc.reg
:bye

Если вы посмотрите на существующую конфигурацию DSN в реестре, вы получите представление о том, как изменить код в соответствии с вашей ситуацией

1 голос
/ 30 января 2013

Чтобы ответить на заданный вопрос, вот решение, использующее odbcconf.exe вместо прямого перехода в реестр:

odbcconf.exe configsysdsn ^
  "Microsoft Access Driver (*.mdb, *.accdb)" ^
  "DSN=OurConnectionName;DBQ=X:\Path\to\OurMsAccessDB.mdb"

Два примечания, которые меня отключили на некоторое время:

  • убедитесь, что вы используете 64-битный odbcconf.exe в 64-битной системе, см. https://stackoverflow.com/questions/6721702/windows-7-64-bit-odbc-drivers-for-ms-access-missing.
  • , используйте DBQ=, а не Database= для пути mdb.При использовании последнего все кажется работоспособным, однако ссылка на соединение названа, но фактически не определена в Администраторе ODBC.
...