达梦的ODBC安装需要下载完整安装包进行勾选ODBC进行安装,鉴于之前项目使用经验,再需要批量部署时非常不方便,因此该文章主要介绍并提供简易方法。
压缩文件目录为
其中DMODBC32为```language
32位ODBC所需要的依赖,DMODBC64位64位ODBC所需要依赖。
conf.ini文件为记录驱动依赖目录,文件内容为
```language
##32位ODBC依赖目录,注意\\,自行拷贝到需要的目录
DM_HOME_32=C:\\DMODBC32
##64位ODBC依赖目录,注意\\,自行拷贝到需要的目录
DM_HOME_64=C:\\DMODBC64
installDmOdbc_32.bat 为安装32位的ODBC,文件内容为
@echo off
setlocal enabledelayedexpansion
REM 读取conf.ini文件中的DM_HOME_32属性
for /f "tokens=2 delims==" %%i in ('findstr "DM_HOME_32" conf.ini') do (
set DM_HOME_32=%%i
)
REM 检查是否成功读取DM_HOME_32
if not defined DM_HOME_32 (
echo 错误:未找到 conf.ini 文件或 DM_HOME_32 属性。
pause
exit /b 1
)
REM 替换REG文件中的C:\\DM32为DM_HOME_32的值
set "regfile=update_reg_DmOdbc_32.reg"
set "tempfile=%temp%\temp_reg.reg"
REM 读取REG文件并替换路径
(for /f "tokens=*" %%a in (%regfile%) do (
set "line=%%a"
set "line=!line:C:\\DM32=%DM_HOME_32%!"
echo !line!
)) > "%tempfile%"
REM 调用替换后的REG文件
regedit /s "%tempfile%"
REM 删除临时文件
del "%tempfile%"
REM 拷贝libeay32.dll和ssleay32.dll到C:\Windows\SysWOW64
set "source_path=%DM_HOME_32%\bin\thirdparty\openssl_xp"
set "target_path=C:\Windows\SysWOW64"
if exist "%source_path%\libeay32.dll" (
copy "%source_path%\libeay32.dll" "%target_path%"
if errorlevel 1 (
echo 错误:无法拷贝 libeay32.dll。
pause
exit /b 1
)
echo libeay32.dll 已成功拷贝到 %target_path%。
) else (
echo 错误:未找到 libeay32.dll。
pause
exit /b 1
)
if exist "%source_path%\ssleay32.dll" (
copy "%source_path%\ssleay32.dll" "%target_path%"
if errorlevel 1 (
echo 错误:无法拷贝 ssleay32.dll。
pause
exit /b 1
)
echo ssleay32.dll 已成功拷贝到 %target_path%。
) else (
echo 错误:未找到 ssleay32.dll。
pause
exit /b 1
)
echo REG文件已成功更新并执行。
echo DLL文件已成功拷贝。
pause
update_reg_DmOdbc_32.reg文件内容为
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\WOW6432Node\ODBC\ODBCINST.INI\ODBC Drivers]
"DM8 ODBC DRIVER"="Installed"
[HKEY_LOCAL_MACHINE\Software\WOW6432Node\ODBC\ODBCINST.INI\DM8 ODBC DRIVER]
"Driver"="C:\\DM32\\bin\\dodbc.dll"
"Setup"="C:\\DM32\\bin\\dodbc.dll"
-----------------------------以下为64位-----------------------------------
installDmOdbc_64.bat 为安装64位的ODBC,文件内容为
@echo off
setlocal enabledelayedexpansion
REM 读取conf.ini文件中的DM_HOME_64属性
for /f "tokens=2 delims==" %%i in ('findstr "DM_HOME_64" conf.ini') do (
set DM_HOME_64=%%i
)
REM 检查是否成功读取DM_HOME_64
if not defined DM_HOME_64 (
echo 错误:未找到 conf.ini 文件或 DM_HOME_64 属性。
pause
exit /b 1
)
REM 替换REG文件中的C:\\DM64为DM_HOME_64的值
set "regfile=update_reg_DmOdbc_64.reg"
set "tempfile=%temp%\temp_reg.reg"
REM 读取REG文件并替换路径
(for /f "tokens=*" %%a in (%regfile%) do (
set "line=%%a"
set "line=!line:C:\\DM64=%DM_HOME_64%!"
echo !line!
)) > "%tempfile%"
REM 调用替换后的REG文件
regedit /s "%tempfile%"
REM 删除临时文件
del "%tempfile%"
echo REG文件已成功更新并执行。
pause
update_reg_DmOdbc_64.reg文件内容为
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers]
"DM8 ODBC DRIVER"="Installed"
[HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\DM8 ODBC DRIVER]
"Driver"="C:\\DM64\\bin\\dodbc.dll"
"Setup"="C:\\DM64\\bin\\dodbc.dll"
文件附件太大,无法直接上传可以到此处下载
附件文件下载地址
文章
阅读量
获赞