Windows平台驱动配置

自动注册ODBC驱动

目前大部分的windows操作系统都是64位的,在windows平台安装好神通数据库后,默认会自动注册64位的驱动。 通过操作系统的 [ODBC数据源管理器] 可以查看到注册的驱动,神通数据库的驱动名称为:OSCAR ODBC DRIVER,支持宽字符的驱动名称为:OSCAR ODBCW DRIVER。

../../../../../_images/install.png

64位操作系统中有2个odbc数据源管理器,分别管理32和64位的odbc驱动,请选择合理驱动管理器管理odbc驱动:

  • 32位的odbc数据源管理器:C:\Windows\SysWOW64\odbcad32.exe
  • 64位的odbc数据源管理器:C:\Windows\System32\odbcad32.exe

也可以通过windows的注册表查看系统中注册的ODBC驱动:

  • 64位驱动查看:[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI]
  • 32位驱动查看:[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI]

人工注册或修改ODBC驱动

人工注册的方式本质是修改注册表,通过编写vbs脚本并执行,可以达到手工注册的目的,下面介绍注册OSCAR ODBC DRIVER和OSCAR ODBCW DRIVER驱动的方法,且注册后会自动生成odsn/odsnw的一个数据源。

  • OSCAR ODBC DRIVER 驱动注册:

1). 将以下内容复制到stodbc.vbs文件中:

'天津神舟通用数据技术有限公司版权所有 (C) 2003-2021
'使用示例:
  '安装:cscript odbc.vbs /Style:Install /FolderPath:c:\ShenTong\drivers\odbc\lib  /DllName:OSCARODBC.dll /BIT:64
  '卸载:cscript odbc.vbs /Style:UnInstall /DllName:OSCARODBC.dll /BIT:64

'参数列表:
  '参数style:Install标识安装、UnInstall标识卸载,
  '参数DllName:odbc连接库的dll文件名称,
  '参数FolderPath:dll文件存放的路径
  '参数BIT:使用的系统位数信息

Dim ODBC_WScript,objArgs
Dim Style,DllName,FolderPath
Dim RegPath,DirPath
Dim Exists,CreateOdsn,DRIVER
Dim Temp
WScript.Echo "天津神舟通用数据技术有限公司"
Set objArgs = WScript.Arguments
Set ODBC_WScript=WScript.CreateObject("WScript.Shell")
Style=WScript.Arguments.Named.Item("Style")
BIT=WScript.Arguments.Named.Item("BIT")
DRIVER="OSCAR ODBC DRIVER"
if BIT="" then '默认64位
    BIT="64"
end if

if BIT="32" then '32位
    DirPath="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\"
else if BIT = "64" then'64位
    DirPath="HKEY_LOCAL_MACHINE\SOFTWARE\"
    else
        WScript.Echo "无效的BIT参数,请使用64/32"
        WScript.quit
    end if
end if

On Error Resume Next
if Style="Install" then '安装驱动
    FolderPath=WScript.Arguments.Named.Item("FolderPath")
    DllName=WScript.Arguments.Named.Item("DllName")
    RegPath = DirPath+"ODBC\ODBCINST.INI\ODBC Drivers\"
    ODBC_WScript.RegWrite RegPath+DRIVER,"Installed"
    if Err.Number <> 0 then
        WScript.Echo "Error!错误信息:"
        WScript.Echo Err.description
    end if
    RegPath=DirPath+"ODBC\ODBCINST.INI\"+DRIVER+"\"
    ODBC_WScript.RegWrite RegPath,Default
    ODBC_WScript.RegWrite RegPath+"Setup",FolderPath+"\"+DllName
    ODBC_WScript.RegWrite RegPath+"Driver",FolderPath+"\"+DllName
    ODBC_WScript.RegWrite RegPath+"UsageCount",1,"REG_DWORD"
    WScript.Echo "安装"+BIT+"位神通数据库ODBC驱动成功!"
else '卸载驱动
    On Error Resume Next
    if Style="UnInstall" then
        ODBC_WScript.RegRead (DirPath+"ODBC\ODBCINST.INI\ODBC Drivers\"+DRIVER)
        if Err.Number <> 0 then
            WScript.Echo "没有安装"+BIT+"位神通数据ODBCW驱动!"
        else
            RegPath=DirPath+"ODBC\ODBCINST.INI\ODBC Drivers\"
            ODBC_WScript.RegDelete RegPath+DRIVER
            RegPath=DirPath+"ODBC\ODBCINST.INI\"+DRIVER+"\"
            ODBC_WScript.RegDelete RegPath
            WScript.Echo "卸载"+BIT+"位神通数据库ODBC驱动成功!"
        end if
    else
        WScript.Echo "无效参数!"
    end if
end if

2). 执行stodbc.vbs文件:

注册: cscript stodbc.vbs /Style:Install /FolderPath:c:\ShenTong\odbc\lib /DllName:OSCARODBC.dll /BIT:64

卸载: cscript stodbc.vbs /Style:UnInstall /DllName:OSCARODBC.dll /BIT:64

  • OSCAR ODBCW DRIVER 驱动注册:

1). 将以下内容复制到stodbcw.vbs文件中:

'天津神舟通用数据技术有限公司版权所有 (C) 2003-2021

'使用示例:
    '安装:cscript odbcw.vbs /Style:Install /FolderPath:c:\ShenTong\drivers\odbc\lib  /DllName:OSCARODBCW.dll /BIT:64
    '卸载:cscript odbcw.vbs /Style:UnInstall /DllName:OSCARODBCW.dll /BIT:64

'参数列表:
    '参数style:Install标识安装、UnInstall标识卸载,
    '参数DllName:odbc连接库的dll文件名称,
    '参数FolderPath:dll文件存放的路径
    '参数BIT:使用的系统位数信息

Dim ODBC_WScript,objArgs
Dim Style,DllName,FolderPath
Dim RegPath,DirPath,OscarName
Dim Exists,CreateOdsn,DRIVER
Dim Temp

WScript.Echo "天津神舟通用数据技术有限公司"
Set objArgs = WScript.Arguments
Set ODBC_WScript=WScript.CreateObject("WScript.Shell")
Style=WScript.Arguments.Named.Item("Style")
BIT=WScript.Arguments.Named.Item("BIT")
DRIVER="OSCAR ODBCW DRIVER"
if BIT="" then '默认64位'
    BIT="64"
end if

if BIT="32" then '32位
    DirPath="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\"
    OscarName="odsn32w"
else if BIT="64" then'64位
    DirPath="HKEY_LOCAL_MACHINE\SOFTWARE\"
    OscarName="odsnw"
    else
        WScript.Echo "无效的BIT参数,请使用64/32"
        WScript.quit
    end if
end if

On Error Resume Next
if Style="Install" then '安装驱动
    WScript.Echo "开始安装"+BIT+"位odbcw驱动"
    FolderPath=WScript.Arguments.Named.Item("FolderPath")
    DllName=WScript.Arguments.Named.Item("DllName")
    CreateOdsn=WScript.Arguments.Named.Item("CreateOdsn")
        if CreateOdsn="" then '默认不创建数据源
            CreateOdsn="0"
        else if CreateOdsn<>1 and CreateOdsn<>0 then
            WScript.Echo "无效的CreateOdsn参数,输入1代表创建默认数据源,0代表不创建默认数据源"
            WScript.quit
        end if
        end if
    RegPath=DirPath+"ODBC\ODBCINST.INI\ODBC Drivers\"
    ODBC_WScript.RegWrite RegPath+DRIVER,"Installed"
    if Err.Number <> 0 then
        WScript.Echo "Error!错误信息:"
        WScript.Echo Err.description
    end if
    RegPath=DirPath+"ODBC\ODBCINST.INI\"+DRIVER+"\"
    ODBC_WScript.RegWrite RegPath,Default
    ODBC_WScript.RegWrite RegPath+"Setup",FolderPath+"\"+DllName
    ODBC_WScript.RegWrite RegPath+"Driver",FolderPath+"\"+DllName
    ODBC_WScript.RegWrite RegPath+"UsageCount",1,"REG_DWORD"
    WScript.Echo "安装"+BIT+"位神通数据库odbcw驱动成功!"
else '卸载驱动
    On Error Resume Next
    if Style="UnInstall" then
        ODBC_WScript.RegRead (DirPath+"ODBC\ODBCINST.INI\ODBC Drivers\"+DRIVER)
        if Err.Number <> 0 then
            WScript.Echo "没有安装"+BIT+"位神通数据ODBCW驱动!"
        else
            RegPath=DirPath+"ODBC\ODBCINST.INI\ODBC Drivers\"
            ODBC_WScript.RegDelete RegPath+DRIVER
            RegPath=DirPath+"ODBC\ODBCINST.INI\"+DRIVER+"\"
            ODBC_WScript.RegDelete RegPath
            WScript.Echo "卸载"+BIT+"位神通数据库ODBCW驱动成功!"
        end if
    else
        WScript.Echo "无效参数!"
    end if
end if

2). 执行stodbcw.vbs文件:

注册: cscript stodbcw.vbs /Style:Install /FolderPath:c:\ShenTong\drivers\odbc\lib /DllName:OSCARODBCW.dll /BIT:64

卸载: cscript stodbcw.vbs /Style:UnInstall /DllName:OSCARODBCW.dll /BIT:64

备注:odbc库文件可以单独注册,但odbc相关的库文件(ssl库等)必须都存在,/FolderPath参数给定的路径必须是odbc文件锁存在的路径。