GBASE南大通用技术分享:perl语言连接GBase8a数据库的方法之二,ODBC协议

2.2、通过ODBC协议连接南大通用GBase 8a。

ODBC是由微软提出的数据库访问标准应用程序编程接口,大部分数据库管理系统都配置了ODBC驱动以实现应用对自己的访问。unixODBC是一款开源的ODBC驱动管理器。

GBase 8a ODBC驱动安装

[root@vm220 ~]# rpm -iv GBaseODBC-9.5.0.2-centos7.x86_64.rpm

unixODBC安装

[root@vm220 ~]# yum install unixODBC unixODBC-devel

安装其它依赖的组件

[root@vm220 ~]# yum install perl-DBI perl-ExtUtils-MakeMaker

用odbinst命令查看配置文件信息

[gbase@vm220 ~]$ odbcinst -j

unixODBC 2.3.1

DRIVERS............: /etc/odbcinst.ini

SYSTEM DATA SOURCES: /etc/odbc.ini

FILE DATA SOURCES..: /etc/ODBCDataSources

USER DATA SOURCES..: /home/gbase/.odbc.ini

SQLULEN Size.......: 8

SQLLEN Size........: 8

SQLSETPOSIROW Size.: 8

odbinst.ini配置的是驱动信息,GBase8a驱动安装后,会增加下面的一段:

[gbase@vm220 ~]$ cat /etc/odbcinst.ini ...

[GBase8a] Driver=/usr/lib64/libgsodbc8.so

UsageCount=1 ......

odb.ini配置了数据源。

[gbase@vm220 [gbase8a]

Driver = GBase8a # 与odbcinst.ini中配置的驱动名一致

DATABASE = db01

DESCRIPTION = GBase 8a ODBC Driver

DSN SERVER = 192.168.10.220

PORT = 5258

UID = root

PASSWORD = root

isql测试GBase8a的连通性

[gbase@vm220 ~]$ isql gbase8a -v

+---------------------------------------+

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

+---------------------------------------+

SQL> select count(1) from db01.t;

+---------------------+

| count(1) |

+---------------------+

| 2 |

+---------------------+

SQLRowCount returns 1

DBD-ODBC组件安装

[root@vm220 tmp]# tar -zxf DBD-ODBC-1.61.tar.gz

[root@vm220 tmp]# cd DBD-ODBC-1.61/

[root@vm220 DBD-ODBC-1.61]# perl Makefile.PL

[root@vm220 DBD-ODBC-1.61]# make && make install

编写测试脚本

[gbase@vm220 ~]$ cat test_odbc.pl

!/usr/bin/perl use DBI;

use encoding 'utf-8';

$dbh=DBI->connect('dbi:ODBC:gbase8a', 'root', 'root');

my $sth=$dbh->prepare("select * from db01.employee");

$sth->execute();

while(@data=$sth->fetchrow_array())

{

print "$data[0] $data[1]\n";

}

测试结果

[gbase@vm220 ~]$ perl test_odbc.pl

100 张三

105 李四

216 王五

posted @ 2025-10-20 13:51  GBASE南大通用  阅读(2)  评论(0)    收藏  举报