GO

本章节主要介绍使用 GO 语言开发时,如何使用 ODBC (Open Database Connectivity) 快速连接 DM 数据库。

环境介绍

软件 版本
DM 数据库 DM 8.0 及以上版本
GO Go 1.15.3 windows-amd 64
GCC Tdm 64-gcc-9.2.0
GIT Git-2.29.2-64-bit

开发步骤

下载并安装 Git

下载并安装 Git,通过 Git 获取驱动程序。

Git 安装步骤简单,持续点击【下一步】即可。安装完成后,在桌面单击鼠标右键,选择【Git Bash Here】按钮,出现下图即表明安装成功。

Git 安装成功

获取 ODBC 驱动

  • 依赖包下载

右击鼠标选择【Git Bash Here】在命令行执行以下命令下载相关工程包,如下所示:

cd D:\\Go\\Go_WorkList  ##工作目录
git clone https://github.com/golang/sys.git
git clone https://github.com/go-xorm/xorm
git clone https://github.com/alexbrainman/odbc
git clone https://gitea.com/mps-go/xorm-builder.git
  • 依赖包分发配置

分发工程包,ctrl+R 输入 CMD 进入命令行执行以下操作。

#创建分发目录(存在可忽略)
md D:\Go\src\xorm.io
md D:\Go\src\github.com\alexbrainman
md D:\Go\src\github.com\go-xorm
md D:\Go\src\golang.org\x

#分发工程包
move D:\Go\Go_WorkList\xorm D:\Go\src\github.com\go-xorm
move D:\Go\Go_WorkList\odbc  D:\Go\src\github.com\alexbrainman
move D:\Go\Go_WorkList\xorm-builder  D:\Go\src\xorm.io\builder
move D:\Go\Go_WorkList\sys  D:\Go\src\golang.org\x

Windows 配置 ODBC 数据源

Window 下自带 ODBC 数据源管理器(数据库安装程序会自动注册 DM ODBC 驱动)。

文档和图片文件夹图示

  • Windows 搜索框输入【ODBC】点击【64 位相关程序】,选择【添加】。

文档和图片文件夹图示

  • 选中 DM8 数据源驱动程序,点击【完成】。

文档和图片文件夹图示

  • 在红框内输入以下信息,数据库默认密码为 SYSDBA,点击【测试】。

文档和图片文件夹图示

  • 点击【测试数据源】,显示测试成功字样即数据库连接成功,点击三次【确定】后完成数据源配置。

文档和图片文件夹图示

文档和图片文件夹图示

Linux 配置 ODBC 数据源

  • 安装

Linux 环境获取 ODBC 需要下载安装数据源管理工具,版本不限,具体请参考 unixODBC 官网

$ tar zxvf unixODBC-2.3.0.tar.gz  -- 解压 tar 包到当前目录
$ cd unixODBC-2.3.0/   -- 切换到解压后的目录
$ ./configure && make && make install   -- 编译安装
  • 配置

编辑 /usr/local/etc/odbcinst.ini 文档添加以下信息:

[DM8 ODBC DRIVER]
Description   = ODBC DRIVER FOR DM8
Driver        = {DM_HOME}/bin/libdodbc.so 

编辑 /usr/local/etc/odbc.ini 文档添加以下信息:

[dm]
Description  = DM ODBC DSN
Driver       = DM8 ODBC DRIVER
SERVER       = localhost
UID          = SYSDBA
PWD          = SYSDBA
  • 验证

驱动安装完毕后需要切换到 dmdba 用户下执行验证命令,详情如下:

$ su – dmdba  --需切换到 dmdba 用户下执行以下命令
$ isql -v dm  --输入命令以后打印“Connected!”字样代表连接成功

连接 ODBC 数据库

示例代码
package main
//引用包
import (
  "fmt"
  "github.com/alexbrainman/odbc"  // go官方驱动
  "github.com/go-xorm/xorm"
)

//定义引擎
var (
engine *xorm.Engine
)

func main() {
//数据库连接参数
params :=fmt.Sprintf("driver={DM8 ODBC DRIVER};server=192.168.112.128:5236;database=DAMENG;uid=SYSDBA;pwd=SYSDBA;charset=utf8")

/*driver 对应 DM8-ODBC 数据源名称;
  erver =数据库 IP
  database = 数据库名称
  uid = 数据库用户
  pwd = 数据库用户密码
  charset = 字符集
*/

//创建 Engine 实例连接数据库
Engine, err := xorm.NewEngine("odbc", params)
if err != nil {
fmt.Println("new engine got error:", err)
return
}

//通过 Engine.Ping() 验证数据库是否连接成功
if err := Engine.Ping(); err != nil {
fmt.Println("ping got error:", err)
return
}

Engine.ShowSQL(true)
return
}
微信扫码
分享文档
扫一扫
联系客服