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