注册
在WIN环境下安装32位/64位达梦ODBC驱动
技术分享/ 文章详情 /

在WIN环境下安装32位/64位达梦ODBC驱动

Y丶Charles 2025/02/14 275 0 0

达梦的ODBC安装需要下载完整安装包进行勾选ODBC进行安装,鉴于之前项目使用经验,再需要批量部署时非常不方便,因此该文章主要介绍并提供简易方法。
压缩文件目录为
image.png

其中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" 

文件附件太大,无法直接上传可以到此处下载
附件文件下载地址

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服