Windows下Python3通过DbtPy连接到GBase 8s数据库

示例使用的操作系统:Win 7 64bit
软件需求:Python 3.7.9

1,安装CSDK,设置环境变量

可从以下地址下载:

https://gbasedbt.com/odbc/GBase8s_3.0-Win64-ODBC-Driver.zip

免安装CSDK版本。
解压,生成的gbase8s-odbc-driver放置于D:\目录下。
在我的电脑->系统属性->高级->环境变量 中,增加环境变量GBASEDBTDIR 指向D:\gbase8s-odbc-driver,Path中增加%GBASEDBTDIR%\bin;

image002.jpg

2,有互联网的情况下,直接pip3安装DbtPy,将自动安装最新的DbtPy

image004.jpg

3,无互联网的情况下,可先下载对应的whl文件,

whl的下载地址为:

https://pypi.org/project/DbtPy/#files
https://gbasedbt.com/dl/DbtPy/

按照python的版本下载对应的whl。
如果是3.5,3.6,3.7,3.8以后的版本,将会下载源码,以编译的方式安装,这时,需要有Microsoft Visual C++ Build Tools (14.0)
比如:当前使用的python版本为3.7.9,下载DbtPy-3.0.5-cp37-cp37m-win_amd64.whl
通过pip3 install DbtPy-3.0.5-cp37-cp37m-win_amd64.whl安装
image006.jpg

4,然后通过pip3 list查看已经安装的版本

image008.jpg

5,Python3通过DbtPy连接GBase 8s数据库测试

编写测试脚本程序TestDbtPy.py,内容如下:

#!/usr/bin/python3
# filename: TestDbtPy.py
 
import sys
import DbtPy
 
print("Python DbtPy测试程序开始运行.\n")
connectStr="PROTOCOL=onsoctcp;HOST=a02.gbasedbt.com;SERVICE=9088;SERVER=gbase01;DATABASE=testdb;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8"
conn=DbtPy.connect(connectStr, "gbasedbt", "GBase123")
 
DbtPy.exec_immediate(conn, "drop table if exists company")
 
DbtPy.exec_immediate(conn, "create table company(coid serial,coname varchar(255),coaddr varchar(255))")
 
DbtPy.exec_immediate(conn, "insert into company(coname,coaddr) values ('南大通用','天津市普天创新园')")
DbtPy.exec_immediate(conn, "insert into company(coname,coaddr) values ('南大通用北京分公司','北京市朝阳区太阳宫')")
 
stmt = DbtPy.exec_immediate(conn, "select * from company")
data = DbtPy.fetch_assoc(stmt)
 
rc = 0
while data != False:
    rc += 1
    print (data)
    data = DbtPy.fetch_assoc(stmt)
 
DbtPy.free_result(stmt)
DbtPy.free_stmt(stmt)
DbtPy.close(conn)
 
print("\nPython DbtPy测试程序结束运行.")
sys.exit(0)

python TestDbtPy.py执行并输出结果:

D:\> python TestDbtPy.py
Python DbtPy测试程序开始运行.
 
{'coid': 1, 'coname': '南大通用', 'coaddr': '天津市普天创新园'}
{'coid': 2, 'coname': '南大通用北京分公司', 'coaddr': '北京市朝阳区太阳宫'}
 
Python DbtPy测试程序结束运行.

标签: gbase 8s, GBase, python, DbtPy, gbase8s python

评论已关闭