版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

功能介绍

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()



示例代码

代码块
languagepy
# 注意, 在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

...