我可以使用什么 odbcconf.exe 命令行来更改现有系统 DSN 的 MS Access .mdb 文件的路径?
问问题
3055 次
2 回答
2
您必须通过更改注册表来做到这一点。与此示例类似的内容取自我以前使用过的网络
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 配置,那么您将了解如何修改代码以适应您的情况
于 2010-08-06T07:18:59.350 回答
1
要回答所提出的问题,这是使用 odbcconf.exe 而不是直接进入注册表的解决方案:
odbcconf.exe configsysdsn ^
"Microsoft Access Driver (*.mdb, *.accdb)" ^
"DSN=OurConnectionName;DBQ=X:\Path\to\OurMsAccessDB.mdb"
有两件事让我绊倒了一段时间:
- 确保在 64 位系统上使用 64 位 odbcconf.exe,请参阅https://stackoverflow.com/questions/6721702/windows-7-64-bit-odbc-drivers-for-ms-access-missing。
- 使用
DBQ=
而不是Database=
用于 mdb 路径。使用后者时,一切似乎都可以正常工作,但是连接链接已命名,但并未在 ODBC 管理器中实际定义。
于 2013-01-29T21:26:45.557 回答