...
- 安装C++运行时库,VS2013和VS2008
- 依据32位或64位(依pydbapi.pyd而定)已安装,且系统环境变量path包含了python.exe的路径。如果是eview中使用,则不需要设置python.exe的路径到path中
- bin目下需具有如下依赖库dll:
- pkcomm.dll/pklog.dll/pkce.dll/pkdbapi.dll/pkinifile.dll
- msvcp120.dll/msvcr120.dll
- pydbapi.pyd
- 如果使用mysql数据库,则:libmysql.dll
- 如果是oracle数据,还需要先安装oracle客户端,并配置数据源
接口
- pydbapi.Init()
初始化,在整个程序使用数据库前调用一次
参数:无
返回值:数值类型,retcode
示例:pydbapi.Init()
- pydbapi.InitDB()
对于每个数据库,调用本函数初始化后返回一个数据库实例句柄,在后面使用
参数:无
返回值:对象类型,handle
示例:db1=pydbapi.InitDB()
- pydbapi.Connect(dbHandle,dbType,dbConnStr,userName,passWord,codingSet)
连接一个数据库,返回0表示成功,其他值表示失败
参数:
dbHandle,数据库句柄,pydbapi.InitDB()
连接一个数据库
参数:InitDB返回的数据库句柄,数据库类型(字符串,如db2),连接字符串(见后面说明),用户名,密码,编码方式(缺省为空)
返回
dbType,数据库类型字符串(支持类型见后面说明)
dbConnStr,数据库连接串(见后面说明)
userName,用户名(见后面说明)
passWord,密码(见后面说明)
codingSet,编码方式,可为空,缺省为空
示例:retcoderetcode=pydbapi.Connect(db1,"sqlite","eview.db","","")
- ConnectFromConfig(dbHandle,configFileName, dbSectionName)
连接一个数据库
返回值:返回0表示成功,其他表示失败
参数:
dbHandle,数据库句柄,pydbapi.InitDB()返回
configFileName, config目录下的数据库连接文件名,可为空,为空则表示db.conf
dbSectionName,config目录下数据库连接文件database小节名字,可为空,为空表示database
示例:retcode=pydbapi.ConnectFromConfig(dbHandle)
- pydbapi.BeginTransaction(dbHnadle)
执行开始事务的操作
参数:数据库句柄(InitDB返回)
返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串)
示例:retcode,errmsg,rows=pydbapi.BeginTransaction (db1)
- pydbapi.CommitTransaction()
执行开始事务的操作
参数:数据库句柄(InitDB返回)
返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串)
示例:retcode,errmsg,rows=pydbapi.CommitTransaction (db1)
- pydbapi.RollbackTransaction()
执行开始事务的操作
参数:数据库句柄(InitDB返回)
返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串)
示例:retcode,errmsg,rows=pydbapi.RollbackTransaction (db1)
- pydbapi.ExecuteSQL(dbHandle, sql)
执行一次数据库增删改查操作
参数:数据库句柄(InitDB返回),SQL语句
返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串),查询到的数据信息(数组表示,对select查询有效)
示例:retcode,errmsg,rows=pydbapi.ExecuteSQL(db1,"select * from t_device_list")
- pydbapi.Disconnect(dbHandle)
不再使用数据库时,断开连接
参数:数据库句柄(InitDB返回)
返回值:错误代码(数值型)
示例:retcode=pydbapi.Disconnect(db1)
- pydbapi.ExitDB(dbHandle)
不再使用数据库时,删除数据库对象
参数:数据库句柄(InitDB返回)
返回值:错误代码(数值型)
示例:retcode=pydbapi. ExitDB(db1)
- pydbapi.Exit()
不再使用所有数据库时,进行资源释放操作
参数:无
返回值:错误代码(数值型)
示例:retcode=pydbapi. Exit()
...
代码块 | ||
---|---|---|
| ||
# 注意, 在windows下, pydbapi.dll 必须改名为:pydbapi.pyd, linux下则不需要改名
#coding=utf-8
import os
import string
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import pydbapi
if __name__ == '__main__':
pydbapi.Init()
db1=pydbapi.InitDB()
print("NewDB:",db1)
#retcode=pydbapi.ConnectFromConfig(db1) 调用这个或者下面这个方法都可以
retcode=pydbapi.Connect(db1,"sqlite","eview.db","","")
print "connect:",retcode
retcode,errmsg=pydbapi.ExecuteSQL(db1,"select * from t_device_list")
print retcode, errmsg
retcode=pydbapi.Disconnect(db1)
print "Disconnect:",retcode
pydbapi.ExitDB(db1)
pydbapi.Exit() |
...