连接到 GBase 8s 数据库示例 南大通用数据技术股份有限公司 General Data Technologies Co., Ltd. 版权所有 GBASE 2020 天津总公司 : 天津市高新区华苑产业园区开华道 22 号普天创新园东塔 层电话 : 传真 :

Similar documents
FileMaker 15 ODBC 和 JDBC 指南

FileMaker 16 ODBC 和 JDBC 指南

epub83-1

RunPC2_.doc

RUN_PC連載_12_.doc

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

untitled

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f

ebook 185-6

Hive:用Java代码通过JDBC连接Hiveserver

SQL Server SQL Server SQL Mail Windows NT

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

ebook140-9

A9RF716.tmp

基于UML建模的管理管理信息系统项目案例导航——VB篇

Chapter 2

Microsoft Word - linux命令及建议.doc

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

untitled

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

Oracle 4

ebook35-2

华恒家庭网关方案

Pchome

AL-M200 Series

附录J:Eclipse教程

網路安全:理論與實務 第二版

一步一步教你搞网站同步镜像!|动易Cms

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

AL-MX200 Series

2 ADO.NET Internet 1.2

untitled

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

untitled

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

PPBSalesDB.doc

untitled

软件测试(TA07)第一学期考试

Microsoft Word - PS2_linux_guide_cn.doc

Microsoft Word - 第3章.doc

基于ECO的UML模型驱动的数据库应用开发1.doc

Perl

概述

ch08.PDF

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

ch7.PDF

IP505SM_manual_cn.doc

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

untitled

ebook140-8

05_資源分享-NFS及NIS.doc

f2.eps

epub 61-2

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

Oracle高级复制冲突解决机制的研究

untitled

untitled

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

C/C++ - 文件IO

目錄... ivv...vii Chapter DETECT

Eclipse C C++, or

Basic System Administration

EK-STM32F

ebook8-30

1.ai

mvc

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

全国计算机技术与软件专业技术资格(水平)考试

1. 访 问 最 新 发 行 公 告 信 息 jconnect for JDBC 访 问 最 新 发 行 公 告 信 息 最 新 版 本 的 发 行 公 告 可 以 从 网 上 获 得 若 要 查 找 在 本 产 品 发 布 后 增 加 的 重 要 产 品 或 文 档 信 息, 请 访

深圳市亚可信息技术有限公司 NetWeaver 7.3 EhP1 ABAP on Redhat Enterprise Linux Server 62 for Oracle112 High Availability System Installation Created by

Windows 2000 Server for T100

Java 1 Java String Date

软件概述

多層次傳銷與獎金系統

目錄

EJB-Programming-4-cn.doc

untitled

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

untitled

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

第一章 章标题-F2 上空24,下空24

ORACLE Enterprise Linux 6.3下ORACLE11g的安装

untitled

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

4.1 AMI MQSeries API AMI MQI AMI / / AMI JavaC C++ AMI / AMI AMI - / /

Windows 2000 Server for T100

提问袁小兵:

untitled

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

ebook70-22

Microsoft Word - PostgreSQL _对接_SequoiaDB.docx

untitled

C/C++ - 函数

Transcription:

南大通用数据技术股份有限公司 General Data Technologies Co., Ltd. 版权所有 GBASE 2020 天津总公司 : 天津市高新区华苑产业园区开华道 22 号普天创新园东塔 20-23 层电话 :022-58815678 传真 :022-58815679 北京分公司 : 北京市朝阳区太阳宫中路 12 号太阳宫大厦 10 层 1008 室电话 :010-88866866 传真 :010-88864556 http://www.gbase.cn E-mail:info@gbase.cn

, 南大通用数据技术股份有限公司 版权所有 GBASE 2020, 保留所有权利 作者 : 廖晋清 终审者 : 版权声明 本文档所涉及的软件著作权 版权和知识产权已依法进行了相关注册 登记, 由南大通用数据技术股份有 限公司合法拥有, 受 中华人民共和国著作权法 计算机软件保护条例 知识产权保护条例 和相关 国际版权条约 法律 法规以及其它知识产权法律和条约的保护 未经授权许可, 不得非法使用 免责声明 本文档包含的南大通用公司的版权信息由南大通用公司合法拥有, 受法律的保护, 南大通用公司对本文档 可能涉及到的非南大通用公司的信息不承担任何责任 在法律允许的范围内, 您可以查阅, 并仅能够在 中 华人民共和国著作权法 规定的合法范围内复制和打印本文档 任何单位和个人未经南大通用公司书面授 权许可, 不得使用 修改 再发布本文档的任何部分和内容, 否则将视为侵权, 南大通用公司具有依法追 究其责任的权利 本文档中包含的信息如有更新, 恕不另行通知 您对本文档的任何问题, 可直接向南大通用数据技术股份 有限公司告知或查询 未经本公司明确授予的任何权利均予保留 通讯方式 南大通用数据技术股份有限公司 中国天津市高新区华苑产业园区开华道 22 号普天创新园东塔 20-23 层 电话 :400-013-9696 商标声明 邮箱 :info@gbase.cn 是南大通用数据技术股份有限公司向中华人民共和国国家商标局申请注册的注册商标, 注册商标专用权由南大通用公司合法拥有, 受法律保护 未经南大通用公司书 面许可, 任何单位及个人不得以任何方式或理由对该商标的任何部分进行使用 复制 修改 传播 抄录或与其它产品捆绑使用销售 凡侵犯南大通用公司商标权的, 南大通用公司将依 法追究其法律责任

目 录 1. 概述... 1 2. 客户端软件安装... 2 2.1. WINDOWS 下的 JDBC 驱动安装... 2 2.2. WINDOWS 下的 CSDK 安装及连接配置... 5 2.2.1. CSDK 的安装... 5 2.2.2. CSDK 的配置... 9 2.2.3. ODBC 的配置... 12 2.3. LINUX 下的 JDBC 安装... 15 2.4. LINUX 下的 CSDK 安装... 17 2.4.1. CSDK 的安装... 17 2.4.2. CSDK 的配置... 17 2.4.3. ODBC 的配置... 18 3. 数据库连接示例... 21 3.1. JAVA 方式连接到数据库... 21 3.2. C# 通过 ADO.NET 方式连接到数据库 -WINDOWS... 24 3.3. C# 通过 ODBC 方式连接到数据库 -WINDOWS... 29 3.4. ESQLC 方式连接到数据库 -LINUX... 32 3.5. PHP 通过 ODBC 方式连接到数据库 -LINUX... 34 3.6. PHP 通过 PDO_GBASEDBT 连接到数据库 -LINUX... 35 3.7. PYTHON3 通过 PYODBC 连接到数据库 -LINUX... 37 3.8. PERL 通过 DBI::GBASEDBT 连接到数据库 -LINUX... 39 3.9. PERL 通过 DBI::ODBC 连接到数据库 -LINUX... 41 3.10. GOLANG 通过 ODBC 连接到数据库 -LINUX... 44 II

1. 概述 本文档以示例的形式介绍 GBase 8s 数据库的连接操作, 仅保证使用相同环境下的测试能通过, 不同的环境下仅供参数 示例使用的数据库版本为 GBase 8s V8.8 2.0.1A2_2 版本,JDBC 版本为 JDBC_2.0.1A2_1( 或者功能修复版 ),CSDK 的版本为 clientsdk_2.0.1a2_2(linux) /clientsdk_2.0.0.2(windows) 示例使用的数据库服务器信息如下 : 表 1 示例使用的数据库信息 序号 参数名称 示例参数值 说明信息 1 主机名称 bd.gbasedbt.com 或 者 a02.gbasedbt.com 数据库服务器的主机名称或者 IP 地址 2 端口号 9088 数据库服务器使用的端口号 3 数据库服务名称 gbase01 数据库服务名称 (DBSERVERNAME) 4 数据库名 utf8 数据库名称 (DBNAME) 5 数据库字符集 zh_cn.utf8 数据库字符集 (DB_LOCALE) 6 客户端字符集 zh_cn.utf8 客户端字符集 (DB_LOCALE) 7 GLU 支持 1 全球语言支持 (GL_USEGLU) 涉及到使用的其它组件, 参考具体的页面 第三章节使用到的示例代码, 存放于 https://gbasedbt.com/dl/demo4gbase8s 目录下 1/45

2. 客户端软件安装 客户端软件主要包括 CSDK,JDBC 两种 在 Linux 或者 Unix 环境下, 和 Windows 环境下分别配置 2.1. Windows 下的 JDBC 驱动安装 安装 JDBC 驱动的前置条件 : 已经安装好了 java 运行环境 (JRE 或者 JDK) 这里使用了 jdk8 将 JDBC 驱动安装包 ( 注 : 驱动包是 Linux/Windows 通用的, 以.tar 为后缀的压缩包 ) 解压, 执行 setup.jar 进行安装 开始安装 2/45

同意协议 选择安装路径, 这里使用 D:/GBASE/GBase_JDBC_Driver 目录 3/45

安装提示 完成安装 4/45

安装完成后, 在指定的安装目录 D:/GBASE/GBase_JDBC_Driver/lib 下的所 有 jar 包是 GBase 8s 的驱动包, 常用的是 ifxjdbc.jar 2.2. Windows 下的 CSDK 安装及连接配置 2.2.1. CSDK 的安装 CSDK 需要使用管理员权限进行安装 CSDK 安装包解压, 以管理员身份运 5/45

行 installclientsdk.exe 开始安装 安装介绍 协议页面, 需要将滚动条拉到最下面, 才可以点击接受协议的单选框 6/45

设置安装路径, 这里我们使用 D:\GBASE\GBase Client-SDK 目录 安装的功能浏览,CSDK 默认安装的组件包括 :OLEDB 运行环境 C++ 接 口 ESQL\C.NET 驱动 客户端程序 LIBDMI ODBC 驱动 通用数据库工具 和 GLS 7/45

安装组件预览, 执行安装 完成安装 8/45

2.2.2. CSDK 的配置 安装完成后, 需要对客户端连接进行设置 在开始菜单里找到 GBase Client-SDK 4.10(64-bit) 目录, 使用管理员权限运行打开 Setnet32 程序 在环境 (Environment) 选项卡, 根据数据库的实现情况设置 : CLIENT_LOCALE:zh_CN.utf8 DB_LOCALE:zh_CN.utf8 GBASEDBTSERVER:gbase01 GL_USEGLU:1 9/45

等参数 在服务器信息 (Server Information) 选项卡中设置数据库服务器信息 : HostName:bd.gbasedbt.com Protocolname:onsoctcp Service Name:9088 主机名或者域名 协议名称 数据库使用的端口号 可以设置为默认的数据库服务器 10/45

在主机信息 (Host Information) 选项卡中设置主机信息 设置用户 密码选项及密码 在开始菜单里找到 GBase Client-SDK 4.10(64-bit) 目录, 使用管理员权限运 行 ConnectTest Demo 进行连接测试 出现的 ConnectTest Demo 界面下, 会自动加载配置好的数据库服务器信息, 选择 Database( 这里我们使用 utf8), 填写测试语句 select * from systables 进行测 试, 能获取到数据即为成功 11/45

2.2.3. ODBC 的配置 安装了 64 位的 CSDK, 则需要配置 64 位的数据源 在控制面板 所有控 制面板项 管理工具中配置数据源 (ODBC) 开启 ODBC 配置, 添加用户或 者系统 DSN 12/45

使用 GBase ODBC DRIVER (64-bit) 驱动 在通用 (General) 选项卡中, 填写数据源名称 :utf8 13/45

在连接 (Connection) 选项卡中, 会读到现有的 CSDK 连接信息, 只需选择 相应的 DataBase Name, 我们这里使用 utf8 然后, 应用和测试连接 14/45

测试连接成功后, 在环境 (Environment) 选项卡中, 确认环境是否正确 2.3. Linux 下的 JDBC 安装 安装 JDBC 驱动的前置条件 : 已经安装好了 java 运行环境 (JRE 或者 JDK) 这里使用了 jdk8 1) 检查 java 版本 15/45

[root@localhost ~]# java -version openjdk version "1.8.0_262" OpenJDK Runtime Environment (build 1.8.0_262-b10) OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode) 2) 解压缩安装包, 并进入目录 [root@localhost ~]# tar -xvf JDBC_2.0.1A2_1_RHEL6_x86_64.tar JDBC_2.0.1A2_1_RHEL6_x86_64/ JDBC_2.0.1A2_1_RHEL6_x86_64/setup.jar [root@localhost ~]# cd JDBC_2.0.1A2_1_RHEL6_x86_64 [root@localhost JDBC_2.0.1A2_1_RHEL6_x86_64]# ls -al 总用量 16192 drwxrwxrwx. 2 root root 23 7 月 5 2018. dr-xr-x---. 3 root root 253 10 月 28 17:03.. -rwxrwxrwx. 1 root root 16578705 7 月 5 2018 setup.jar 3) 执行静默安装, 自动完成安装 [root@localhost JDBC_2.0.1A2_1_RHEL6_x86_64]# java -jar setup.jar -i silent \ -DUSER_INSTALL_DIR=/opt/GBASE/GBase_JDBC_Driver/ -DLICENSE_ACCEPTED=TRUE 表 2 Linux 下 JDBC 安装涉及的参数说明 序号 参数名称 示例参数值 说明信息 1 -i silent 指定使用静默安装 2 -DUSER_INSTALL_DIR= /opt/gbase/gbase_jdbc _Driver 指定安装目录 3 -DLICENSE_ACCEPTED= TRUE 指定接受协议 4) 安装完成后, 在指定的安装目录 /opt/gbase/gbase_jdbc_driver/lib 下 的所有 jar 包是 GBase 8s 的驱动包, 常用的是 ifxjdbc.jar [root@localhost lib]# pwd /opt/gbase/gbase_jdbc_driver/lib [root@localhost lib]# ls -al 总用量 2352 drwxr-xr-x. 2 root root 123 10 月 28 17:14. drwxrwxr-x. 8 root root 144 10 月 28 17:14.. -rwxrwxr-x. 1 root root 1179537 7 月 5 2018 ifxjdbc.jar -rwxrwxr-x. 1 root root 51146 7 月 5 2018 ifxjdbcx.jar -rwxrwxr-x. 1 root root 170543 7 月 5 2018 ifxlang.jar -rwxrwxr-x. 1 root root 142198 7 月 5 2018 ifxlsupp.jar -rwxrwxr-x. 1 root root 806326 7 月 5 2018 ifxsqlj.jar -rwxrwxr-x. 1 root root 52461 7 月 5 2018 ifxtools.jar 16/45

2.4. Linux 下的 CSDK 安装 2.4.1. CSDK 的安装 CSDK 需要使用 root 用户权限进行安装 需要预先创建 gbasdbt 用户组及 gbasedbt 用户 1) 创建 gbasedbt 用户组及 gbasedbt 用户 [root@localhost ~]# groupadd -g 1000 gbasedbt [root@localhost ~]# useradd -g 1000 -d /home/gbasedbt -m -s /bin/bash gbasedbt 2) 解压缩 CSDK 软件包 [root@localhost ~]# mkdir csdk [root@localhost ~]# cd csdk/ [root@localhost csdk]# tar -xvf../clientsdk_2.0.1a2_2_rhel6_x86_64.tar csdk.properties doc/ doc/glsapi_machine_notes_4.10.txt doc/libcpp_machine_notes_4.10.txt doc/esqlc_machine_notes_4.10.txt doc/odbc_machine_notes_4.10.txt installclientsdk.gbase.properties 3) 执行静默安装, 自动完成安装 [root@localhost csdk]#./installclientsdk -i silent \ -DUSER_INSTALL_DIR=/opt/gbase -DLICENSE_ACCEPTED=TRUE 表 3 Linux 下 CSDK 安装涉及的参数说明 序号 参数名称 示例参数值 说明信息 1 -i silent 指定使用静默安装 2 -DUSER_INSTALL_DIR= /opt/gbase 指定安装目录 3 -DLICENSE_ACCEPTED= TRUE 指定接受协议 2.4.2. CSDK 的配置 说明 CSDK 安装完成后, 需要对客户端连接进行设置 以下使用 gbasedbt 用户来 1) 在用户的目录下的用户环境配置文件.bash_profile 中增加数据库的环境 17/45

根据数据库的实现情况设置 : #.bash_profile export GBASEDBTDIR=/opt/gbase export GBASEDBTSERVER=gbase01 export PATH=${GBASEDBTDIR/bin:${PATH export LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATH export DB_LOCALE=zh_CN.utf8 export CLIENT_LOCALE=zh_CN.utf8 export GL_USEGLU=1 export DBDATE="Y4MD-" export GL_DATE="%iY-%m-%d" export GL_DATETIME="%iY-%m-%d %H:%M:%S" export DBACCESS_SHOW_TIME=1 2) 修改 GBASEDBTSQLHOSTS 配置文件在 $GBASEDBTDIR/etc/ 目录下创建 sqlhosts( 默认的 GBASEDBTSQLHOSTS) 配置文件, 内容为连接到数据库服务器的信息 # GBASEDBTSQLHOSTS gbase01 onsoctcp bd.gbasedbt.com 9088 3) 测试数据库连接 [gbasedbt@localhost ~]$ dbaccess - - > connect to "utf8@gbase01" user "gbasedbt"; 输入密码 :< 输入用户密码 > 已连接 Elapsed time: 4.978 sec > select dbservername from dual; (expression) gbase01 查询到 1 行 Elapsed time: 0.312 sec 2.4.3. ODBC 的配置 安装了 64 位的 CSDK, 则需要配置 64 位的数据源 Linux 下的 ODBC 需要 18/45

unixodbc 如果需要对所有用户生效, 需要在系统级配置 1) 确认 unixodbc 已经安装 [root@localhost ~]# rpm -qa grep -i unixodbc unixodbc-devel-2.3.1-14.el7.x86_64 unixodbc-2.3.1-14.el7.x86_64 2) 在 /etc/profile 配置文件里增加 CSDK 的配置环境 # /etc/profile # Add for GBase 8s ODBC export GBASEDBTDIR=/opt/gbase export GBASEDBTSERVER=gbase01 export PATH=${GBASEDBTDIR/bin:${PATH export LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATH export DB_LOCALE=zh_CN.utf8 export CLIENT_LOCALE=zh_CN.utf8 export GL_USEGLU=1 export ODBCINI=/etc/odbc.ini 3) 配置 ODBCINI 配置文件, 根据 CSDK 环境, 配置如下 : [ODBC Data Sources] utf8=gbase ODBC DRIVER ; ; Define ODBC Database Driver's Below - Driver Configuration Section ; [utf8] Driver=/opt/gbase/lib/cli/iclit09b.so Description=GBase ODBC DRIVER Database=utf8 LogonID=gbasedbt pwd=gbase123 Servername=gbase01 CursorBehavior=0 CLIENT_LOCALE=zh_CN.utf8 DB_LOCALE=zh_CN.utf8 TRANSLATIONDLL=/opt/gbase/lib/esql/igo4a304.so ; ; UNICODE connection Section ; [ODBC] ;uncomment the below line for UNICODE connection ;UNICODE=UCS-4 ; 19/45

; Trace file Section ; Trace=0 TraceFile=/tmp/odbctrace.out InstallDir=/opt/gbase TRACEDLL=idmrs09a.so 4) ODBC 连接测试确认当前用户环境变量中包括 2) 中配置的环境变量,3) 已经完成 通过 isql 测试 ODBC 配置正确 [root@localhost ~]# env egrep '(GBASEDBT ODBCINI)' GBASEDBTSERVER=gbase01 ODBCINI=/etc/odbc.ini GBASEDBTDIR=/opt/gbase [root@localhost ~]# isql -v utf8 +---------------------------------------+ Connected! sql-statement help [tablename] quit +---------------------------------------+ SQL> select dbservername from dual; +---------------------------------------+ +---------------------------------------+ gbase01 +---------------------------------------+ SQLRowCount returns -1 1 rows fetched 20/45

3. 数据库连接示例 3.1. Java 方式连接到数据库 示例使用 IDEA 2018.3.6, 要求 2.1 Windows 下的 JDBC 驱动安装已经完成 1) 打开 IDEA,File -> New -> Project, 创建一个 Java 项目, 项目名称为 TestJdbc 2) 打开的 Java 项目, 新建个 jas 目录添加 JDBC 驱动 (ifxjdbc.jar) 将 ifxjdbc.jar 加入到 Library 中 21/45

3) 新建 Java 类 在 src 目录下创建 package(com.gbasedbt), 然后在 package 下创建 java 类 TestJdbc.java 22/45

4) 增加 java 代码 将以下示例代码复制到 TestJdbc.java 中 package com.gbasedbt; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; public class TestJdbc { public static void main(string[] args){ Connection connection = null; Statement statement = null; ResultSet resultset = null; String url = "jdbc:gbasedbt-sqli://180.76.182.233:9088/utf8:gbasedbtserver=gbase01;" + "DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;IFX_LOCK_MODE_WAIT=30"; String user = "gbasedbt"; String pass = "GBase123"; try{ Class.forName("com.gbasedbt.jdbc.Driver"); connection = DriverManager.getConnection(url, user, pass); statement = connection.createstatement(); statement.execute("drop table if exists company"); varchar(255))"); statement.execute("create table company(coid serial,coname varchar(255),coaddr 23/45

地 ')"); statement.execute("insert into company values (0,' 南大通用 ',' 天津市海泰绿色产业基 区太阳宫 ')"); statement.execute("insert into company values (0,' 南大通用北京分公司 ',' 北京市朝阳 statement.execute("update company set coaddr = ' 天津市普天创新园 ' where coid = 1"); resultset = statement.executequery("select * from company"); while(resultset.next()){ System.out.println(resultSet.getInt("coid") + "\t" + resultset.getstring("coname").trim() + "\t" + resultset.getstring("coaddr").trim() ); catch (Exception e) { e.printstacktrace(); 5) 执行 run -> run(testjdbc) 测试连接到数据库结果 3.2. C# 通过 ADO.NET 方式连接到数据库 -Windows 示例使用 Visual Studio 2015 社区版 要求 2.2.2 CSDK 的配置已经完成 1) 打开 Visual Studio, 文件 (F) -> 新建 (N) -> 项目 (P) 2) 指定编程语言及.net framework 版本使用 Visual C#,.NET Framework 4.5.2, 创建 Windows 窗体应用程序, 指定项目名称为 TestDotNet, 位置等 24/45

3) Form1 窗体添加工具, 并调整格式 增加一个 Label, 名称为 label1; 一个 datagridview, 名称为 datagridview1; 一个 button, 名称为 btnselect 25/45

4) 添加引用 GBS.Data.GBasedbt.dll 在解决方案管理器上的引用中右键添加引用, 浏览并增加 GBS.Data.GBasedbt.dll 文件 示例中的路径 :D:\GBASE\GBase Client-SDK\bin\netf40\GBS.Data.GBasedbt.dll 5) 增加 C# 代码将以下示例代码复制到 Form1.cs 中 ( 视需要修改控件名称 ) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using GBS.Data.GBasedbt; namespace TestDotNet { public partial class Form1 : Form { IfxConnection ifxconn; 26/45

DataSet ds; public Form1() { InitializeComponent(); IfxConnectionStringBuilder build = new IfxConnectionStringBuilder(); build.host = "bd.gbasedbt.com"; // 主机名或者 IP 地址 build.service = "9088"; // 数据库服务器使用的端口号 build.server = "gbase01"; // 数据库服务名称 build.database = "utf8"; // 数据库名 (DBNAME) build.uid = "gbasedbt"; // 用户 build.pwd = "GBase123"; // 密码 build.dblocale = "zh_cn.utf8"; // 数据库字符集 build.clientlocale = "zh_cn.utf8"; // 客户端字符集 build.persistsecurityinfo = true; // 保存安全信息 ifxconn = new IfxConnection(build.ConnectionString); ifxconn.open(); using (IfxCommand ifxcmd = ifxconn.createcommand()) { ifxcmd.commandtext = "drop table if exists company"; ifxcmd.executenonquery(); ifxcmd.commandtext = "create table company(coid serial,coname varchar(255),coaddr varchar(255))"; ifxcmd.executenonquery(); 色产业基地 ')"; ifxcmd.commandtext = "insert into company values (0,' 南大通用 ',' 天津市海泰绿 ifxcmd.executenonquery(); 京市朝阳区太阳宫 ')"; ifxcmd.commandtext = "insert into company values (0,' 南大通用北京分公司 ',' 北 ifxcmd.executenonquery(); = 1"; ifxcmd.commandtext = "update company set coaddr = ' 天津市普天创新园 ' where coid ifxcmd.executenonquery(); ifxcmd.commandtext = "select dbinfo('version','full') from dual"; IfxDataReader dr = ifxcmd.executereader(); if (dr.read()) { this.label1.text = " 数据库版本号为 : " + dr[0]; 27/45

private void btnselect_click(object sender, EventArgs e) { IfxDataAdapter ifxadpt = new IfxDataAdapter("select * from company", ifxconn); ds = new DataSet(); ifxadpt.fill(ds); this.datagridview1.datasource = ds.tables[0]; MessageBox.Show("DotNet 方式操作数据库成功! \n"); 6) 执行 Debug 测试连接到数据库结果所有的软件都使用了 64 位的, 故 Debug 也使用 x64, 如果使用的是 32 位的 CSDK, 则选择 x86 出现 Form1 界面后, 点击查询, 将显示 company 表记录及弹出框提示成功 28/45

3.3. C# 通过 ODBC 方式连接到数据库 -Windows 示例使用 Visual Studio 2015 社区版 要求 2.2.2 CSDK 的配置和 2.2.3 ODBC 的配置已经完成 1) 打开 Visual Studio, 文件 (F) -> 新建 (N) -> 项目 (P) 2) 指定编程语言及.net framework 版本使用 Visual C#,.NET Framework 4.5.2, 创建 Windows 窗体应用程序, 指定项目名称为 TestODBC, 位置等 3) Form1 窗体添加工具, 并调整格式 增加一个 Label, 名称为 label1; 一个 datagridview, 名称为 datagridview1; 一个 button, 名称为 btnselect 29/45

4) 增加 C# 代码将以下示例代码复制到 Form1.cs 中 ( 视需要修改控件名称 ) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Odbc; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TestODBC { public partial class Form1 : Form { OdbcConnection odbcconn; DataSet ds; public Form1() { InitializeComponent(); OdbcConnectionStringBuilder build = new OdbcConnectionStringBuilder(); build.driver = "GBase ODBC DRIVER (64-Bit)"; // 在系统中注册的驱动名称 build.add("host", "bd.gbasedbt.com"); // 主机地址或者 IP 地址 build.add("service", "9088"); // 数据库服务器的使用的端口号 build.add("server", "gbase01"); // 数据库服务名称 30/45

build.add("database", "utf8"); // 数据库名 (DBNAME) build.add("protocol", "onsoctcp"); // 网络协议名称 build.add("uid", "gbasedbt"); // 用户 build.add("pwd", "GBase123"); // 密码 build.add("db_locale", "zh_cn.utf8"); // 数据库字符集 build.add("client_locale", "zh_cn.utf8"); // 客户端字符集 odbcconn = new OdbcConnection(build.ConnectionString); odbcconn.open(); using (OdbcCommand odbccmd = odbcconn.createcommand()) { odbccmd.commandtext = "drop table if exists company"; odbccmd.executenonquery(); odbccmd.commandtext = "create table company(coid serial,coname varchar(255),coaddr varchar(255))"; odbccmd.executenonquery(); 色产业基地 ')"; odbccmd.commandtext = "insert into company values (0,' 南大通用 ',' 天津市海泰绿 odbccmd.executenonquery(); 北京市朝阳区太阳宫 ')"; odbccmd.commandtext = "insert into company values (0,' 南大通用北京分公司 ',' odbccmd.executenonquery(); = 1"; odbccmd.commandtext = "update company set coaddr = ' 天津市普天创新园 ' where coid odbccmd.executenonquery(); odbccmd.commandtext = "select dbinfo('version','full') from dual"; OdbcDataReader dr = odbccmd.executereader(); if (dr.read()) { this.label1.text = " 数据库版本号为 : " + dr[0]; private void btnselect_click(object sender, EventArgs e) { OdbcDataAdapter odbcadpt = new OdbcDataAdapter("select * from company", odbcconn); ds = new DataSet(); odbcadpt.fill(ds); this.datagridview1.datasource = ds.tables[0]; 31/45

MessageBox.Show("ODBC 方式操作数据库成功! \n"); 5) 执行 Debug 测试连接到数据库结果 所有的软件都使用了 64 位的, 故 Debug 也使用 x64, 如果使用的是 32 位的 CSDK, 则选择 x86 出现 Form1 界面后, 点击查询, 将显示 company 表记录及弹出框提示成功 3.4. ESQLC 方式连接到数据库 -Linux 要求 2.4.2 CSDK 的配置已经完成 Linux 下还需要编译器 gcc 和 gcc-c++ 均已经安装 1) 确认 gcc 和 gcc-c++ 均已经安装 [root@localhost esqlc]# rpm -qa gcc gcc-c++ gcc-4.8.5-39.el7.x86_64 gcc-c++-4.8.5-39.el7.x86_64 2) 设置系统网络连接( 可选, 也可配置为信任方式 ) 在用户目录下创建.netrc 配置文件, 权限为 600, 内容如下 : [root@localhost esqlc]# more ~/.netrc # machine 目标主机名或 IP 地址 login 用户名 password 密码 32/45

machine bd.gbasedbt.com login gbasedbt password GBase123 3) 编写测试程序 TestESQLC.ec, 内容如下 : #include <stdio.h> main() { EXEC SQL BEGIN DECLARE SECTION; int v_tabid; char v_tabname[ 128 ]; EXEC SQL END DECLARE SECTION; printf( "\nesqlc 测试程序开始运行.\n\n"); EXEC SQL WHENEVER ERROR STOP; EXEC SQL connect to 'utf8'; EXEC SQL declare democursor cursor for select tabid,tabname into :v_tabid, :v_tabname from systables where tabid < 10; EXEC SQL open democursor; for (;;) { EXEC SQL fetch democursor; if (strncmp(sqlstate, "00", 2)!= 0) break; printf("%d\t%s\n", v_tabid, v_tabname); if (strncmp(sqlstate, "02", 2)!= 0) printf("sqlstate after fetch is %s\n", SQLSTATE); EXEC SQL close democursor; EXEC SQL free democursor; EXEC SQL disconnect current; printf("\nesqlc 测试程序结束运行.\n\n"); exit(0); 4) 编译成可执行文件, 并执行测试 [root@localhost esqlc]# esql -o TestESQLC -glu TestESQLC.ec 33/45

[root@localhost esqlc]#./testesqlc ESQLC 测试程序开始运行. 1 systables 2 syscolumns 3 sysindices 4 systabauth 5 syscolauth 6 sysviews 7 sysusers 8 sysdepend 9 syssynonyms ESQLC 测试程序结束运行. 3.5. PHP 通过 ODBC 方式连接到数据库 -Linux 要求 2.4.2 CSDK 的配置和 2.4.3 ODBC 的配置已经完成 PHP 通过 ODBC 方式连接到数据库, 需要 php 及 php-odbc 均已经安装 1) 确认 php 及 php-odbc 已经安装 [root@localhost php-odbc]# rpm -qa php php-odbc php-5.4.16-48.el7.x86_64 php-odbc-5.4.16-48.el7.x86_64 2) 编写测试程序 TestPhpOdbc.php <?php # 连接到 DSN: utf8 echo "PHP ODBC 测试程序开始运行.\n\n"; $conn=odbc_connect('utf8','',''); if (!$conn) {exit(" 数据库连接失败 : ". $conn); $sql="select tabid,tabname FROM systables where tabid < 10"; $rs=odbc_exec($conn,$sql); if (!$rs) {exit("sql 错误 "); while (odbc_fetch_row($rs)) { $col1=odbc_result($rs,"tabid"); $col2=odbc_result($rs,"tabname"); 34/45

echo "$col1\t$col2\n"; odbc_close($conn); echo "\nphp ODBC 测试程序结束运行.\n"; 3) 执行测试 [root@localhost php-odbc]# php -e TestPhpOdbc.php PHP ODBC 测试程序开始运行. 1 systables 2 syscolumns 3 sysindices 4 systabauth 5 syscolauth 6 sysviews 7 sysusers 8 sysdepend 9 syssynonyms PHP ODBC 测试程序结束运行. 3.6. PHP 通过 PDO_GBASEDBT 连接到数据库 -Linux 要求 2.4.2 CSDK 的配置已经完成 PHP 通过 POD_GBASEDBT 连接到数据库, 需要 php php-devel 和 php-pdo 均已经安装 建议使用 yum 方式安装, 该方式将自动安装依赖包 ( 比如 automake,autoconf 等 ) 1) 确认 php php-devel 和 php-pdo 已经安装 [root@localhost php-pdo_gbasedbt]# rpm -qa php php-devel php-pdo php-pdo-5.4.16-48.el7.x86_64 php-devel-5.4.16-48.el7.x86_64 php-5.4.16-48.el7.x86_64 2) 通过 php-config 获取配置两个信息 :php-config 路径,extension-dir 目录 [root@localhost php-pdo_gbasedbt]# php-config Usage: /usr/bin/php-config [OPTION] Options: --prefix [/usr] --includes [-I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib] --ldflags [] 35/45

--libs [-lcrypt -lresolv -lcrypt -ledit -lncurses -lstdc++ -lgmp -lbz2 lz -lpcre -lrt -lm -ldl -lnsl -lxml2 -lz -lm -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err lssl -lcrypto -lssl -lcrypto -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lcrypt ] --extension-dir [/usr/lib64/php/modules] --include-dir [/usr/include/php] --man-dir [/usr/share/man] --php-binary [/usr/bin/php] --php-sapis [ cli cgi] 3) 下载 PDO_GBASEDBT, 并上传解压下载地址为 :https://gbasedbt.com/dl/pdo_gbasedbt/ PDO_GBASEDBT 基于 PDO_INFORMIX 改写而来 [root@localhost php-pdo_gbasedbt]# ll 总用量 76 -rw-r--r--. 1 root root 74679 10 月 28 23:01 PDO_GBASEDBT-1.3.3.tgz [root@localhost php-pdo_gbasedbt]# tar -zxvf PDO_GBASEDBT-1.3.3.tgz 4) 使用 phpize 扩展 php 动态模块 PDO_GBASEDBT [root@localhost PDO_GBASEDBT-1.3.3]# phpize Configuring for: PHP Api Version: 20100412 Zend Module Api No: 20100525 Zend Extension Api No: 220100525 5) 编译 PDO_GBASEDBT 其中 prefix 指向前面获取的 extension-dir 目录 with-php-config 指向前面获取的 php-config 路径 with-pdo-gbasedbt 指向 GBASEDBTDIR [root@localhost PDO_GBASEDBT-1.3.3]#./configure --prefix=/usr/lib64/php/modules \ --with-php-config=/usr/bin/php-config \ --with-pdo-gbasedbt=/opt/gbase [root@localhost PDO_GBASEDBT-1.3.3]# make [root@localhost PDO_GBASEDBT-1.3.3]# make install Installing shared extensions: /usr/lib64/php/modules/ 6) 为 php 增加扩展在 /etc/php.d/ 目录下增加 pdo_gbasedbt.ini 配置文件, 内容如下 : ; Enable pdo_gbasedbt extension module extension=pdo_gbasedbt.so 7) 编写测试程序 TestPhpPdoGBasedbt.php, 内容如下 : 36/45

<?php echo "PHP PDO_GBasedbt 测试程序开始运行.\n\n"; # 数据库连接 $dbh = new PDO("gbasedbt:host=bd.gbasedbt.com; service=9088; database=utf8; server=gbase01; protocol=onsoctcp","gbasedbt","gbase123"); $sth1 = $dbh->prepare("select tabid,tabname FROM systables where tabid < 10"); $sth1->execute(); while( $row = $sth1->fetch() ) { $col1=$row["tabid"]; $col2=$row["tabname"]; echo "$col1\t$col2\n"; $dbh = null; echo "\nphp PDO_GBasedbt 测试程序结束运行.\n"; 8) 执行测试程序 [root@localhost php-pdo_gbasedbt]# php -e TestPhpPdoGBasedbt.php PHP PDO_GBasedbt 测试程序开始运行. 1 systables 2 syscolumns 3 sysindices 4 systabauth 5 syscolauth 6 sysviews 7 sysusers 8 sysdepend 9 syssynonyms PHP PDO_GBasedbt 测试程序结束运行. 3.7. Python3 通过 Pyodbc 连接到数据库 -Linux 要求 2.4.2 CSDK 的配置和 2.4.3 ODBC 的配置已经完成 Python3 通过 pyodbc 连接到数据库, 需要 python3 python3-devel 和 pyodbc 1) 确认 python3 和 python3-devel 已经安装 [root@localhost python-pyodbc]# rpm -qa python3 python3-devel python3-devel-3.6.8-13.el7.x86_64 37/45

python3-3.6.8-13.el7.x86_64 2) 确认安装 pyodbc, 如果没有, 则安装之 [root@localhost python-pyodbc]# pip3 list --format=columns Package Version ---------- ------- pip 9.0.3 setuptools 39.2.0 [root@localhost python-pyodbc]# pip3 install pyodbc WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead. Collecting pyodbc Downloading https://files.pythonhosted.org/packages/81/0d/bb08bb16c97765244791c73e49de9fd4c24bb3ef00313a ed82e5640dee5d/pyodbc-4.0.30.tar.gz (266kB) 100% 276kB 71kB/s Installing collected packages: pyodbc Running setup.py install for pyodbc... done Successfully installed pyodbc-4.0.30 3) 编写测试程序 TestPython3Pyodbc.py, 内容如下 : #!/usr/bin/python3 # filename: TestPython3Pyodbc.py import sys import pyodbc print("python Pyodbc 测试程序开始运行.\n") # use DSN, need PWD key word. conn = pyodbc.connect("dsn=utf8;pwd=gbase123") # set connection encoding conn.setencoding(encoding='utf-8') mycursor = conn.cursor() mycursor.execute("drop table if exists company") mycursor.execute("create table company(coid serial,coname varchar(255),coaddr varchar(255))") mycursor.execute("insert into company values (0,' 南大通用 ',' 天津市海泰绿色产业基地 ')") mycursor.execute("insert into company values (0,' 南大通用北京分公司 ',' 北京市朝阳区太阳宫 ')") mycursor.execute("update company set coaddr = ' 天津市普天创新园 ' where coid = 1") conn.commit() 38/45

cursor1 = conn.cursor() cursor1.execute("select * from company") rows = cursor1.fetchall() for i, (coid, coname, coaddr) in enumerate(rows): print(" 公司 ID: %d \t 公司名称 :%s\t 公司地址 : %s" % (coid, str(coname), str(coaddr))) conn.close() print("\npython Pyodbc 测试程序结束运行.") sys.exit(0) 4) 执行测试程序 [root@localhost python-pyodbc]# python3 TestPython3Pyodbc.py Python Pyodbc 测试程序开始运行. 公司 ID: 1 公司名称 : 南大通用公司地址 : 天津市普天创新园 公司 ID: 2 公司名称 : 南大通用北京分公司公司地址 : 北京市朝阳区太阳宫 Python Pyodbc 测试程序结束运行. 3.8. Perl 通过 DBI::GBASEDBT 连接到数据库 -Linux 要求 2.4.2 CSDK 的配置已经完成 Perl 通过 DBI::GBASEDBT 连接到数据库, 需要 perl perl-dbi perl-test-pod perl-test-pod-coverage 和 perl-extutils-makemaker 均已经安装 建议使用 yum 方式安装, 该方式将自动安装依赖包 1) 确认 perl 和 perl-dbi 等已经安装 [root@localhost perl-dbi]# rpm -qa perl perl-dbi \ perl-test-pod perl-test-pod-coverage perl-extutils-makemaker perl-5.16.3-295.el7.x86_64 perl-dbi-1.627-4.el7.x86_64 perl-test-pod-coverage-1.08-21.el7.noarch perl-extutils-makemaker-6.68-3.el7.noarch perl-test-pod-1.48-3.el7.noarch 2) 下载 DBD-GBasedbt-2018.1031, 并上传解压下载地址为 :https://gbasedbt.com/dl/ DBD-GBasedbt/ DBD-GBasedbt-2018.1031 基于 DBD-Informix-2018.1031 改写而来 [root@localhost perl-dbi]# ll 总用量 300 drwxr-xr-x. 8 501 games 4096 10 月 29 00:22 DBD-GBasedbt-2018.1031 39/45

-rw-r--r--. 1 root root 299983 10 月 29 00:19 DBD-GBasedbt-2018.1031.tar.gz 3) 设置临时环境变量以下 4 个环境变量仅用于编译时的测试,utf8 库应当存在 [root@localhost perl-dbi]# export DBI_DBNAME=utf8 [root@localhost perl-dbi]# export DBD_GBASEDBT_DATABASE=utf8 [root@localhost perl-dbi]# export DBD_GBASEDBT_USERNAME=gbasedbt [root@localhost perl-dbi]# export DBD_GBASEDBT_PASSWORD=GBase123 4) 编译 DBI::GBASEDBT, 并确认已经安装 [root@localhost DBD-GBasedbt-2018.1031]# perl Makefile.PL [root@localhost DBD-GBasedbt-2018.1031]# make [root@localhost DBD-GBasedbt-2018.1031]# make install [root@localhost ~]# perl -MDBD::GBasedbt -le 'print DBD::GBasedbt->VERSION' 2018.1031 5) 编写测试程序脚本 TestPerlDbi.pl, 内容如下 : #!/usr/bin/perl use warnings; use strict; use DBI; print "Perl DBI 测试程序开始运行.\n\n"; # 连接到数据库 utf8 my $dbh = DBI->connect ( "DBI:GBasedbt:utf8", 'gbasedbt', 'GBase123', { PrintError => 0, RaiseError => 1, AutoCommit => 0 ); # 开始事务 $dbh->do("begin"); # 删除表及创建表 my $sth_d_tab = $dbh->prepare("drop table if exists company"); $sth_d_tab->execute(); my $sth_c_tab = $dbh->prepare("create table company(coid serial,coname varchar(255),coaddr varchar(255))"); 40/45

$sth_c_tab->execute(); # 插入数据 my $sth_i_tab = $dbh->prepare("insert into company values (0,' 南大通用 ',' 天津市海泰绿色产业基地 ')"); $sth_i_tab->execute(); $sth_i_tab = $dbh->prepare("insert into company values (0,' 南大通用北京分公司 ',' 北京市朝阳区 太阳宫 ')"); $sth_i_tab->execute(); # 更新数据 my $sth_u_tab = $dbh->prepare("update company set coaddr = ' 天津市普天创新园 ' where coid = 1"); $sth_u_tab->execute(); # 查询数据 my $sth_s_tab = $dbh->prepare("select * from company"); $sth_s_tab->execute(); while (my $row = $sth_s_tab->fetchrow_hashref()) { print sprintf("%d\t%s\t%s\n", $row->{coid, $row->{coname, $row->{coaddr); # 提交事务, 关闭数据库连接 $dbh->do("commit"); $dbh->disconnect(); print "\nperl DBI 测试程序结束运行.\n"; exit 0; 6) 执行测试程序 [root@localhost perl-dbi]# perl TestPerlDbi.pl Perl DBI 测试程序开始运行. 1 南大通用天津市普天创新园 2 南大通用北京分公司北京市朝阳区太阳宫 Perl DBI 测试程序结束运行. 3.9. Perl 通过 DBI::ODBC 连接到数据库 -Linux 要求 2.4.2 CSDK 的配置和 2.4.3 ODBC 的配置已经完成 Perl 通过 41/45

DBI::ODBC 方式连接到数据库, 需要 perl 及 perl-devel 均已经安装 1) 确认 perl 及 perl-devel 已经安装 [root@localhost perl-odbc]# rpm -qa perl perl-devel perl-5.16.3-295.el7.x86_64 perl-devel-5.16.3-295.el7.x86_64 2) 下载 DBD-ODBC-1.60, 并上传解压下载地址 :https://metacpan.org/pod/dbd%3a%3aodbc [root@localhost perl-odbc]# ll 总用量 284 drwxr-xr-x. 4 gbasedbt gbasedbt 4096 11 月 1 2018 DBD-ODBC-1.60 -rw-r--r--. 1 root root 282900 10 月 29 01:26 DBD-ODBC-1.60.tar.gz 3) 编译 DBD-ODBC, 并确认安装需要设置 LANG=C, 若设置为 zh_cn.utf-8 会有个警告 make 操作的过程中有警告, 可以忽略 [root@localhost DBD-ODBC-1.60]# export LANG=C [root@localhost DBD-ODBC-1.60]# perl Makefile.PL [root@localhost DBD-ODBC-1.60]# make [root@localhost DBD-ODBC-1.60]# make install [root@localhost ~]# perl -MDBD::ODBC -le 'print DBD::ODBC->VERSION' 1.60 4) 编写测试程序脚本 TestPerlOdbc.pl, 内容如下 : #!/usr/bin/perl use warnings; use strict; use DBI; print "Perl ODBC 测试程序开始运行.\n\n"; # 通过 ODBC 连接到数据库 utf8 my $dbh = DBI->connect ( "DBI:ODBC:utf8", 'gbasedbt', 'GBase123' ); # 开始事务 42/45

$dbh->do("begin"); # 删除表及创建表 my $sth_d_tab = $dbh->prepare("drop table if exists company"); $sth_d_tab->execute(); my $sth_c_tab = $dbh->prepare("create table company(coid serial,coname varchar(255),coaddr varchar(255))"); $sth_c_tab->execute(); # 插入数据 my $sth_i_tab = $dbh->prepare("insert into company values (0,' 南大通用 ',' 天津市海泰绿色产业基地 ')"); $sth_i_tab->execute(); $sth_i_tab = $dbh->prepare("insert into company values (0,' 南大通用北京分公司 ',' 北京市朝阳区 太阳宫 ')"); $sth_i_tab->execute(); # 更新数据 my $sth_u_tab = $dbh->prepare("update company set coaddr = ' 天津市普天创新园 ' where coid = 1"); $sth_u_tab->execute(); # 查询数据 my $sth_s_tab = $dbh->prepare("select * from company"); $sth_s_tab->execute(); while (my $row = $sth_s_tab->fetchrow_hashref()) { print sprintf("%d\t%s\t%s\n", $row->{coid, $row->{coname, $row->{coaddr); # 提交事务, 关闭数据库连接 $dbh->do("commit"); $dbh->disconnect(); print "\nperl ODBC 测试程序结束运行.\n"; exit 0; 5) 执行测试程序 [root@localhost perl-odbc]# perl TestPerlOdbc.pl Perl ODBC 测试程序开始运行. 1 南大通用天津市普天创新园 43/45

2 南大通用北京分公司北京市朝阳区太阳宫 Perl ODBC 测试程序结束运行. 3.10. GOLANG 通过 ODBC 连接到数据库 -Linux 要求 2.4.2 CSDK 的配置和 2.4.3 ODBC 的配置已经完成 GOLANG 通过 ODBC 连接到数据库时, 需要安装 GOLANG 和 GO-ODBC 1) 安装 GO 下载地址 :https://golang.google.cn/dl/ [root@localhost ~]# wget https://dl.google.com/go/go1.15.3.linux-amd64.tar.gz [root@localhost ~]# tar -C /usr/local -xzf go1.15.3.linux-amd64.tar.gz 设置环境变量文件 ( 也可以写入到 /etc/profile 中 ) # go 的目录是 GOROOT,GOPATH 是工作空间 export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH export GOPATH=/root/go-odbc 2) 安装 GO-ODBC 在 $GOROOT/src 目录下安装 GO-ODBC GO-ODBC 的下载地址 :git://github.com/weigj/go-odbc.git [root@localhost ~] cd $GOROOT/src [root@localhost src]# git clone git://github.com/weigj/go-odbc.git odbc [root@localhost src]# cd odbc [root@localhost odbc]# go install [root@localhost odbc]# go list odbc 3) 编写测试程序脚本 TestGoOdbc.go package main import ( "fmt" "database/sql" _ "odbc/driver" ) func main() { 44/45

fmt.printf("go ODBC 测试程序开始运行.\n\n"); db, err := sql.open("odbc", "DSN=utf8;UID=gbasedbt;PWD=GBase123") if err!= nil { panic(err) defer db.close() rows, err := db.query("select tabid,tabname FROM systables where tabid < 10") checkerr(err) for rows.next() { var tabid int var tabname string err = rows.scan(&tabid, &tabname) checkerr(err) fmt.printf("%d\t%s\n", tabid, tabname) rows.close() fmt.printf("\ngo ODBC 测试程序结束运行.\n"); func checkerr(err error) { if err!= nil { panic(err) 4) 执行测试程序 [root@localhost go-odbc]# go run TestGoOdbc.go GO ODBC 测试程序开始运行. 1 systables 2 syscolumns 3 sysindices 4 systabauth 5 syscolauth 6 sysviews 7 sysusers 8 sysdepend 9 syssynonyms GO ODBC 测试程序结束运行. 45/45