一.python语言调用GBase 8a MPP Cluster ODBC驱动
使用python 语言调用GBase 8a MPP Cluster ODBC 时,需要在下载安装
python 和pyodbc 包。以python2.7 为例
1.从http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz 下
2.从http://pyodbc.googlecode.com/files/pyodbc-3.0.6.zip 下载
pyodbc-3.0.6 的安装包。
3.安装python2.7,先解压Python-2.7.3.tgz,然后执行如下命令:
./configure --prefix=/opt/python2.7
make
make install
4.安装pyodbc-3.0.6,先解压pyodbc-3.0.6.zip,然后执行如下命令:
/opt/python2.7/bin/python setup.py build install
这样python2.7 和pyodbc-3.0.6 就安装成功。可以进行python 控制台进
行验证,如下所示:
[root@GBase pyodbc-3.0.6]# /opt/python2.7/bin/python
Python 2.7.3 (default, Jul 16 2012, 18:45:35)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type “help”, “copyright”, “credits” or “license” for more
information.
import pyodbc
使用import pyodbc 引用pyodbc 时没有报错,说明python 安装成功。
接下来是创建ODBC 数据源,创建ODBC 数据源的方法请参考3.2.2。如果涉
及到中文,那么一定要设置GBase 8a MPP Cluster ODBC 驱动的字符集(该字
符集需要与集群安装时默认的字符集保持一致)。此用例中GBase 8a MPP
Cluster ODBC 字符集设置为UTF8。
创建ODBC 数据源成功后就可以使用如下python 脚本测试:
#! /opt/python2.7/bin/python
#coding:utf8
import pyodbc
conn_str = ‘DSN=gbase;’
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute(“drop table if exists t_pyodbc”)
cursor.execute(“create table t_pyodbc(a varchar(100), b int)”)
cursor.execute(“insert into t_pyodbc(a , b) values(?, ?)”, ‘pyodbc’,
10)
cursor.execute(“insert into t_pyodbc(a , b) values(?, ?)”, ‘南大
通用’, 11)
cursor.commit()
cursor.execute(“select * from t_pyodbc”)
row = cursor.fetchall()
for r in row:
print “%s %d” % (r[0].encode(‘utf8’), r[1])
二.perl语言调用GBase 8a MPP Cluster ODBC驱动
使用python 语言调用GBase 8a MPP Cluster ODBC 时,需要在下载安装perl
和DBD::ODBC 包。以perl-5.14 为例:
1.从http://downloads.activestate.com/ActivePerl/releases/5.14.2.1402/Act
ivePerl-
5.14.2.1402-x86_64-linux-glibc-2.3.5-295342.tar.gz 下载perl-5.14
的安装包。
2.从http://mirrors.sohu.com/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.39.t
ar.gz 下载DBD-ODBC-1.39。
3.安装perl-5.14。perl 默认安装在/opt/ActivePerl-5.14 目录下。
4.安装DBD-ODBC-1.39,先解压DBD-ODBC-1.39.tar.gz,然后执行如下
命令安装:
/opt/ActivePerl-5.14/bin/perl Makefile.PL
make
make install
5.接下来是创建ODBC 数据源,创建ODBC 数据源的方法请参考3.2.2。如
果涉及到中文,那么一定要设置GBase 8a MPP Cluster ODBC 驱动的字符集(该
字符集需要与集群安装时默认的字符集保持一致)。此用例中GBase 8a MPP
Cluster ODBC 字符集设置为UTF8。
#!/opt/ActivePerl-5.14/bin/perl
use DBI;
use encoding ‘utf-8’;
$dbh=DBI->connect(‘dbi:ODBC:gbase8a’, ‘gbase’, ‘gbase20110531’);
my dbh->prepare(“drop table if exists t_plodbc”);
$sth->execute();
my dbh->prepare(“create table t_plodbc(a varchar(100), b
int)”);
$sth->execute();
my dbh->prepare(“insert into t_plodbc values(‘南大通用’,
10)”);
$sth->execute();
my dbh->prepare(“select * from t_plodbc”);
sth->fetchrow_array())
{
print “$data[0]\n”;
}
三.php语言调用GBase 8a MPP Cluster ODBC 驱动
$conn_str = "DRIVER=GBase 8a MPP Cluster ODBC 8.3 Driver;SERVER=192.168.9.173;UID=gbase;PWD=gbase20110531;database =test;charset=gbk;LOG_QUERY=1"; $sql_drop = "drop table if exists t_php"; $sql_create = "create table t_php (col1 int, col2 varchar(100))"; $sql_insert1 = "insert into t_php values (1, 'abc')"; $sql_insert2 = "insert into t_php values (2, '南大通用')"; $sql_select = "select * from t_php"; $conn = odbc_connect($conn_str, "", ""); if(!($conn)){ echo "get connection: " . odbc_errormsg($conn); echo ""; } odbc_exec($conn,$sql_drop); if (odbc_error()) { echo "drop table: " . odbc_errormsg($conn); echo "
"; } odbc_exec($conn,$sql_create); if (odbc_error()) { echo "create table: " . odbc_errormsg($conn); echo "
"; } /*insert data*/ odbc_exec($conn,$sql_insert1); if (odbc_error()) { echo "insert" . odbc_errormsg($conn); echo "
"; } odbc_exec($conn,$sql_insert2); if (odbc_error()) { echo "insert" . odbc_errormsg($conn); echo "
"; } /*select data*/ $rs = odbc_exec($conn,$sql_select); if (odbc_error()) { echo "select" . odbc_errormsg($conn); echo "
"; } while(odbc_fetch_row($rs)){ echo "\n" . odbc_result($rs, "col1") . "\t" . odbc_result($rs, "col2") . "\n"; echo "
"; } odbc_exec($conn,$sql_drop); if (odbc_error()) { echo odbc_errormsg($conn); } odbc_close($conn); ?>




