首页 > 数据库 >GBase 8s数据库连接 – Perl(DBD::ODBC)

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

时间:2024-09-19 16:56:48浏览次数:11  
标签:ODBC DBD gbasedbt perl 8s Perl GBase

软件需求: 1,GBase 8s CSDK 2,perl-5.16.3 及perl-devel-5.16.3 3,unixODBC-2.3.1 4,DBD-ODBC-1.60 ###1,系统环境确认 ####1.1 perl、perl-devel及unixODBC版本 Linux下root用户通过rpm确认perl、perl-devel,unixODBC、unixODBC-devel均已经安装,如下:

[root@rhel7u6 ~]#  rpm -qa perl perl-devel unixODBC unixODBC-devel
perl-5.16.3-293.el7.x86_64
perl-devel-5.16.3-293.el7.x86_64
unixODBC-devel-2.3.1-11.el7.x86_64
unixODBC-2.3.1-11.el7.x86_64

####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,ODBC配置 ####2.1 ODBC配置文件 修改/etc/odbc.ini配置文件,增加GBase 8s数据库连接信息

;---------------------------------------------------------------------------
; GBase ODBC Sample File
;
; File:         odbc.ini
;
;---------------------------------------------------------------------------
[ODBC Data Sources]
testdb=GBase ODBC DRIVER
;
; Define ODBC Database Driver's Below - Driver Configuration Section
;
[testdb]
Driver=/opt/gbasedbt/lib/cli/iclis09b.so
Description=GBase ODBC DRIVER
Database=testdb
LogonID=gbasedbt
pwd=GBase123
Servername=gbase01
CursorBehavior=0
CLIENT_LOCALE=zh_CN.utf8
DB_LOCALE=zh_CN.utf8
TRANSLATIONDLL=/opt/gbasedbt/lib/esql/igo4a304.so
;
; UNICODE connection Section
;
[ODBC]
;uncomment the below line for UNICODE connection
;UNICODE=UCS-4
;
; Trace file Section
;
Trace=0
TraceFile=/tmp/odbctrace.out
InstallDir=/opt/gbasedbt
TRACEDLL=idmrs09a.so

####2.2 验证ODBC配置 加载GBase 8s CSDK环境变量,包含连接到GBase 8s数据库所需的GBASEDBTDIR、LD_LIBRARY_PATH,以及选用的字符集DB_LOCALE、CLIENT_LOCALE、LANG等。加载ODBCINI环境变量。环境变量内容可保存为配置文件,如:gbase8s_odbc_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

export ODBCINI=/etc/odbc.ini

通过isql命令检查ODBC配置

[root@localhost ~]#  . gbase8s_odbc_env
[root@localhost ~]#  isql -v testdb
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> select dbservername::varchar(40) from systables where tabid = 1;
+-----------------------------------------+
|                                         |
+-----------------------------------------+
| gbase01                                 |
+-----------------------------------------+
SQLRowCount returns -1
1 rows fetched

###3,编译安装DBD-ODBC 将DBD-ODBC-1.60.tar.gz上传至GBase 8s CSDK所在的服务器上,使用root用户解压。

[root@rhel7u6 perl]# tar -zxvf DBD-ODBC-1.60.tar.gz

在生成的DBD-ODBC-1.60目录里执行perl Makefile.PL 注意:需要设置LANG=C,若设置为zh_CN.UTF-8会有个警告

[root@rhel7u6 DBD-ODBC-1.60]# export LANG=C
[root@rhel7u6 DBD-ODBC-1.60]# perl Makefile.PL

make 操作的过程中有警告,暂时忽视之

[root@rhel7u6 DBD-ODBC-1.60]# make 
[root@rhel7u6 DBD-ODBC-1.60]# make install

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

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

###5,Perl通过DBD::ODBC连接GBase 8s数据库测试 编写测试脚本程序perl_dbi_odbc.perl,内容如下:

#!/usr/bin/perl

use warnings;
use strict;
use DBI;

# 通过ODBC连接到数据库 testdb
my $dbh = DBI->connect
          (
             "DBI:ODBC:testdb",
             'gbasedbt',
             'GBase123'
          );

# 开始事务
$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,'测试中文输入ODBC')");
$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_odbc.pl执行并输出结果:

[root@rhel7u6 DBD-ODBC-1.60]# perl perl_dbi_odbc.pl
1 测试中文输入ODBC

perl通过DBD::ODBC连接到GBase 8s数据库,测试成功。感谢您的阅读,gbase 数据

标签:ODBC,DBD,gbasedbt,perl,8s,Perl,GBase
From: https://blog.51cto.com/u_16319042/12057780

相关文章

  • ‌SQL Server支持ODBC连接吗
    ODBC(OpenDatabaseConnectivity,开放数据库互连)是一个数据库访问接口标准,由微软提出,它定义了访问数据库的API规范,这些API独立于不同的数据库管理系统(DBMS)和具体的编程语言。ODBC允许应用程序通过标准化的接口与不同类型的数据库进行交互,包括SQLServer。利用ODBC进行数据库连接,开......
  • ‌‌JDBC和‌ODBC的区别
    JDBC和ODBC都是用于数据库连接的接口,但它们在技术背景、跨平台性、驱动程序来源、使用方式和配置、性能和安全性以及应用场景等方面存在显著差异。‌技术背景和语言支持‌JDBC是‌Java数据库连接技术,完全基于Java语言,因此与Java程序无缝集成。ODBC是一种开放、标准化的数据库连......
  • 免费爬虫软件“HyperlinkCollector超链采集器v0.1”
    HyperlinkCollector超链采集器单机版v0.1软件采用python的pyside2和selenium开发,暂时只支持window环境,抓取方式支持普通程序抓取和selenium模拟浏览器抓取。软件遵守robots协议。首先下载后解压缩,然后运行app目录下的HyperlinkCollector.exe运行后,我们先创建一个采集项目。......
  • 《刺客信条:奥德赛》启动障碍?这里有你需要的dbdata.dll解决方案
    《刺客信条:奥德赛》启动障碍确实可能由多种原因引起,其中dbdata.dll文件缺失是一个常见问题。以下是你需要的dbdata.dll解决方案,旨在帮助你顺利启动游戏:1.验证游戏文件的完整性如果你是通过Steam或其他数字平台(如UbisoftConnect)安装的游戏,可以尝试验证游戏文件的完整性。这......
  • 一个练习项目,好玩的bbs-perl-mojolicious
    代码:#!D:/software/Strawberry/perl/bin/perl.exeBEGIN{push(@INC,'D:/workspace/studys/study_bbs');}useMojolicious::Lite-signatures;useutf8;useNet::MySQL;useEncode;usePOSIX;useJSONqw/encode_jsondecode_json/;useDigest;o......
  • 一个练习项目,好玩的bbs-perl-dancer
    代码:#!D:/software/Strawberry/perl/bin/perl.exeBEGIN{push(@INC,'D:/workspace/studys/study_bbs');}useutf8;useDancer;useDancer::Serializer::JSON;useNet::MySQL;useEncode;usePOSIX;useJSONqw/encode_jsondecode_json/;useDi......
  • django.core.exceptions.ImproperlyConfigured: 'django.contrib.gis.db.backends.mys
     没解决此问题(venv)[root@VM-8-12-centosMYPROJECT-django20240830]#python3manage.py runserver0.0.0.0:8080Exceptioninthreaddjango-main-thread:Traceback(mostrecentcalllast): File"/root/MYPROJECT/backend/venv/lib/python3.8/site-packages/django/d......
  • 数据库性能诊断利器 聚好看DBdoctor亮相中国数据库技术大会
       2024年8月22-24日,备受瞩目的第15届中国数据库技术大会(DTCC2024)于北京隆总召开。数字化创新浪潮汹涌澎湃,数据库作为信息技术的核心基础设施,正以前所未用的速度推动各行各业的智能化升级。作为在数据库技术领域率先掌握前沿eBPF技术的企业,聚好看科技于本次大会展示自研数据......
  • 使用ODBC连接Sybase ASE数据库
    使用ODBC连接SybaseASE数据库1.本地连接1.1下载驱动管理器1.1.1下载驱动管理器yuminstallunixODBC.x86_64-y下载相关的包,解决pyodbc无法使用的问题:https://github.com/mkleehammer/pyodbc/wiki/Install#installing-on-linuxsudoyuminstallepel-release-ysudo......
  • Sql语句出现ORA-00933: SQL command not properly ended的解决方法
    目录1.问题所示2.原理分析3.解决方法1.问题所示执行sql语句的时候出现如下问题:ORA-00933:SQLcommandnotproperlyended截图如下所示:2.原理分析ORA-00933:SQLcommandnotproperlyended是Oracle数据库中的错误,指示SQL语句存在语法问题MyS......