Windows系统使用ODBC驱动访问KingaseES数据库及常见问题解决

发布时间 2023-06-06 15:41:04作者: KINGBASE研究院

Windows系统使用KingbaseES ODBC驱动访问KingaseES数据库及常见问题解决。

一、获取KingbaseES数据库ODBC驱动:

  1. 在官网下载KingbaseES数据库安装包,选择对应平台的安装包。

官网地址:https://www.kingbase.com.cn/rjcxxz/index.htm

  1. 这里以Windows平台为例,下载 KingbaseES_V008R006C007B0012_Win64_install 安装包进行安装,或者从已有的环境拷贝。

  2. 安装类型选择客户端(Client)就可以,安装完成后ODBC驱动在安装目录Interface\odbc文件夹下。

ClientTools  # KingbaseES客户端工具文件夹,包含集群部署工具、数据迁移工具、KStudio管理客户端
doc          # KingbaseES相关的文档
install			 # KingbaseES安装所需的jre及安装过程日志
Interface    # KingbaseES接口
SubTools     # KingbaseES维护、系统检查、性能相关、备份脚本
Uninstall    # 卸载工具目录

二、安装KingbaseES数据库ODBC驱动(以32位为例):

进入软件安装目录Interface\odbc,在odbc目录有如下文件:

x64_ANSI_Release      # x64_ANSI_Release目录是64位odbc驱动文件
x86_ANSI_Release      # x32_ANSI_Release目录是32位odbc驱动文件
v8r6_32.reg           # v8r6_32.reg文件是安装32位的KingbaseES ODBC驱动
v8r6_64.reg           # v8r6_64.reg文件是安装64位的KingbaseES ODBC驱动
v8r6_odbc_win.md5     # KingbaseES Windows系统的md5

1. 安装KingbaseES ODBC驱动,双击v8r6_32.reg导入注册表信息,完成odbc驱动安装。

Driver:KingbaseES odbc驱动名称,需填写驱动所在的绝对路径,后续可以根据实际情况修改。

Setup:安装的KingbaseES odbc驱动,需填写驱动所在的绝对路径,后续可以根据实际情况修改。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers]
"KingbaseES 8.6 ODBC Driver ANSI"="Installed"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\KingbaseES 8.6 ODBC Driver ANSI]
"APILevel"="1"
"ConnectFunctions"="YYN"
"CPTimeout"="60"
"Driver"="kdbodbc30a.dll"
"DriverODBCVer"="03.00"
"FileUsage"="0"
"Setup"="kdbodbc30a.dll"
"SQLLevel"="1"
"UsageCount"=dword:00000001

或者在安装KingbaseES ODBC驱动前,提前修改好v8r6_32.reg注册表信息,然后在进行安装。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers]
"KingbaseES 8.6 ODBC Driver ANSI"="Installed"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\KingbaseES 8.6 ODBC Driver ANSI]
"APILevel"="1"
"ConnectFunctions"="YYN"
"CPTimeout"="60"
"Driver"="D:\\KingbaseR6C6B21\\KESRealPro\\V008R006C006B0021\\Interface\\odbc\\x86_ANSI_Release\\kdbodbc30a.dll"
"DriverODBCVer"="03.00"
"FileUsage"="0"
"Setup"="D:\\KingbaseR6C6B21\\KESRealPro\\V008R006C006B0021\\Interface\\odbc\\x86_ANSI_Release\\kdbodbc30a.dll"
"SQLLevel"="1"
"UsageCount"=dword:00000001

注意:32位odbc驱动跟64位odbc驱动在注册表不同的路径。

32位odbc驱动注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\

64位odbc驱动注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\

2. KingbaseES ODBC驱动安装完成后(正常导入v8r6_32.reg到注册表后)。

1. 如果未在导入前修改v8r6_32.reg信息,打开windwos系统注册表(快捷命令regedit)进行修改:

进入HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ 路径点击KingbaseES 8.6 ODBC Driver ANSI

选择Driver右键修改输入数值数据:kdbodbc30a.dll的绝对路径

D:\KingbaseR6C6B21\KESRealPro\V008R006C006B0021\Interface\odbc\x86_ANSI_Release\kdbodbc30a.dll

选择Setup右键修改输入数值数据:kdbodbc30a.dll的绝对路径

D:\KingbaseR6C6B21\KESRealPro\V008R006C006B0021\Interface\odbc\x86_ANSI_Release\kdbodbc30a.dll

2. 如果在导入前修改了v8r6_32.reg信息,已填写Driver、Setup的数值数据,通过ODBC管理器查询odbc驱动是否有效(打开odbc驱动管理器参考第三章节):

2.1. 如图所示:版本、公司提示没有被标记。检查信息是否填写有误或者使用第1条的方法导入。

odbc7

2.2. 正常显示:

odbc8

三、 使用Windows系统ODBC管理创建数据源:

1. 在windows搜索栏输入odbc打开对应32/64位ODBC驱动管理器(32位)点击添加选项:

odbc1

2. 选择KingbaseES 8.6 ODBC Driver ANSI驱动,点击确定:

odbc5

3. 点击确定后,出现异常无法加载驱动,系统错误代码126:

odbc2

4. 此问题原因是由于系统未安装Visual Studio c++ 运行库导致。

microsoft visual c++下载地址:https://learn.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist?view=msvc-170

选择对应32/64位进行下载安装,安装64位的VC++需要重启系统,32位不需要重启系统。

image-20230217181610718

5. 安装VC++后,再次使用ODBC管理器进行数据源的创建:

####参考第三章节1-3

5.1 选择KingbaseES 8.6 ODBC Driver ANSI点击确定:

odbc5

5.2 正常弹出KingbaseES ODBC数据源配置,填写连接信息进行连接测试:

odbc9

5.3 测试通过,连接成功:

odbc10

5.4 ODBC数据源管理器可以正常显示:

odbc11

至此,Windows系统ODBC访问KingbaseES数据库数据源配置完成。

安装、配置64位KingbaseES ODBC驱动,同32位ODBC驱动安装、配置过程完全一致,这里不再赘述。