GBase 8s
适配迁移
文章

GBase 8s数据库连接 – Perl(DBD::GBasedbt)

发表于2019-09-08 19:22:002594次浏览0个评论

软件需求: 1,GBase 8s CSDK 2,perl-5.16.3 3,DBD-GBasedbt-2018.1031(Base on: DBD-Informix-2018.1031) ###1,系统环境确认 ####1.1 perl版本 Linux下root用户通过rpm确认perl、perl-DBI、perl-Test-Pod、perl-Test-Pod-Coverage及perl-ExtUtils-MakeMaker均已经安装,如下:

[root@rhel7u6 perl]# rpm -qa perl perl-DBI perl-Test-Pod perl-Test-Pod-Coverage  perl-ExtUtils-MakeMaker
perl-5.16.3-293.el7.x86_64
perl-Test-Pod-1.48-3.el7.noarch
perl-ExtUtils-MakeMaker-6.68-3.el7.noarch
perl-DBI-1.627-4.el7.x86_64
perl-Test-Pod-Coverage-1.08-21.el7.noarch

####1.2 GBase 8s CSDK已经安装 Linux下gbasedbt用户通过esql -V命令确认GBase 8s CSDK已经安装,如下:

 [gbasedbt@rhel7u6 ~]$ esql -V
GBase CSDK Version 4.10, GBASE-ESQL Version 4.10.FC4G1_3.0.0
Software Serial Number AAA#B000000

###2,DBD-GBasedbt编译安装 ####2.1 环境变量加载 加载GBase 8s CSDK环境变量,包含连接到GBase 8s数据库所需的GBASEDBTDIR、GBASEDBTSERVER、PATH、LD_LIBRARY_PATH,以及选用的字符集DB_LOCALE、CLIENT_LOCALE、LANG等。环境变量内容可保存为配置文件,如:gbase8s_csdk_env,以供调用。

export GBASEDBTDIR=/opt/gbasedbt				# GBase 8s CSDK安装目录
export GBASEDBTSERVER=gbase01					# 远程GBase 8s数据库实例名称
export PATH=$GBASEDBTDIR/bin:$PATH:$HOME/bin

export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8

export LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATH

# 以下4个环境变量仅用于编译时的测试,testdb应当存在
export DBI_DBNAME=testdb
export DBD_GBASEDBT_DATABASE=testdb
export DBD_GBASEDBT_USERNAME=gbasedbt
export DBD_GBASEDBT_PASSWORD=GBase123

####2.2 编译安装DBD-GBasedbt 将DBD-GBasedbt-2018.1031.tar.gz上传至GBase 8s CSDK所在的服务器上,使用root用户解压,加载环境变量文件gbase8s_csdk_env。

[root@rhel7u6 perl]#  .  gbase8s_csdk_env
[root@rhel7u6 perl]#  tar -zxvf DBD-GBasedbt-2018.1031.tar.gz

在生成的DBD-GBasedbt-2018.1031目录里执行perl Makefile.PL

[root@rhel7u6 DBD-GBasedbt-2018.1031]# perl Makefile.PL
[root@rhel7u6 DBD-GBasedbt-2018.1031]# make 
[root@rhel7u6 DBD-GBasedbt-2018.1031]# make install

###3,确认DBD::GBasedbt已经安装 通过命令查询DBD::GBasedbt组件已经安装,显示其版本号

[root@rhel7u6 ~]#  perl -MDBD::GBasedbt -le 'print DBD::GBasedbt->VERSION'
2018.1031

###4,Perl通过DBD::GBasedbt连接GBase 8s数据库测试 编写测试脚本程序perl_dbi_gbasedbt.pl,内容如下:

#!/usr/bin/perl

use warnings;
use strict;
use DBI;

# 连接到数据库 testdb
my $dbh = DBI->connect
          (
             "DBI:GBasedbt:testdb",
             'gbasedbt',
             'GBase123',
             { PrintError => 0, RaiseError => 1, AutoCommit => 0 }
          );

# 开始事务
$dbh->do("begin");

# 删除表及创建表
my $sth_d_tab = $dbh->prepare("drop table if exists perl_dbi_gbasedbt");
$sth_d_tab->execute();

my $sth_c_tab = $dbh->prepare("create table perl_dbi_gbasedbt (id int, name varchar(40))");
$sth_c_tab->execute();

# 插入数据
my $sth_i_tab = $dbh->prepare("insert into perl_dbi_gbasedbt values(1,'测试中文输入')");
$sth_i_tab->execute();


# 查询数据
my $sth_s_tab = $dbh->prepare("select first 10 id,name from perl_dbi_gbasedbt");
$sth_s_tab->execute();

while (my $row = $sth_s_tab->fetchrow_hashref())
{

   print sprintf("%d %-40s\n", $row->{id}, $row->{name});

}

# 提交事务,关闭数据库连接
$dbh->do("commit");
$dbh->disconnect();

exit 0;

perl perl_dbi_gbasedbt.pl执行并输出结果:

[root@rhel7u6 DBD-GBasedbt-2018.1031]# perl perl_dbi_gbasedbt.pl
1 测试中文输入

perl通过DBD::GBasedbt连接到GBase 8s数据库,测试成功。

评论

登录后才可以发表评论