版本比较

标识

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

功能介绍

Python接口pydb.pyd文件,是C++扩展的python访问数据库的接口

...

  • 安装C++运行时库,VS2013和VS2008
  • 依据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
    • pydb.pyd
    • 如果使用mysql数据库,则:libmysql.dll
    • 如果是oracle数据,还需要先安装oracle客户端,并配置数据源

接口


    • pydb.InitDB()

    对于每个数据库,调用本函数初始化后返回一个数据库实例句柄,在后面使用

    参数:无

    返回值:对象类型,handle

    示例:db1=pydb.InitDB()


    • pydb.Connect(dbHandle,dbType,dbConnStr,userName,passWord,codingSet)

    连接一个数据库,返回0表示成功,其他值表示失败

    参数:

    dbHandle,数据库句柄,pydb.InitDB()返回

    dbType,数据库类型字符串(支持类型见后面说明)

    dbConnStr,数据库连接串(见后面说明)

    userName,用户名(见后面说明)

    passWord,密码(见后面说明)

    codingSet,编码方式,可为空,缺省为空

    示例:retcode=pydb.Connect(db1,"sqlite","eview.db","","")

    • pydb.ConnectFromConfig(dbHandle,configFileName, dbSectionName)
  • 连接一个数据库

    返回值:返回0表示成功,其他表示失败

    参数:

  • dbHandle,数据库句柄,pydb.InitDB()返回

  • configFileName, config目录下的数据库连接文件名,可为空,为空则表示db.conf

    dbSectionName,config目录下数据库连接文件database小节名字,可为空,为空表示database

    示例:retcode=pydb.ConnectFromConfig(dbHandle)


    • pydb.BeginTransaction(dbHnadle)

    执行开始事务的操作

    参数:数据库句柄(InitDB返回)

    返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串)

    示例:retcode,errmsg=pydb.BeginTransaction (db1)


    • pydb.CommitTransaction()

    执行开始事务的操作

    参数:数据库句柄(InitDB返回)

    返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串)

    示例:retcode,errmsg=pydb.CommitTransaction (db1)


    • pydb.RollbackTransaction()

    执行开始事务的操作

    参数:数据库句柄(InitDB返回)

    返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串)

    示例:retcode,errmsg=pydb.RollbackTransaction (db1)


    • pydb.ExecuteSQL(dbHandle, sql)

    执行一次数据库增删改查操作

    参数:数据库句柄(InitDB返回),SQL语句

    返回值:错误代码(数值型),错误信息(如果错误码不是0,字符串),查询到的数据信息(数组表示,对select查询有效)

    示例:retcode,errmsg,rows=pydb.ExecuteSQL(db1,"select * from t_device_list")



    • pydb.Disconnect(dbHandle)

    不再使用数据库时,断开连接

    参数:数据库句柄(InitDB返回)

    返回值:错误代码(数值型)

    示例:retcode=pydb.Disconnect(db1)



    • pydb.ExitDB(dbHandle)

    不再使用数据库时,删除数据库对象

    参数:数据库句柄(InitDB返回)

    返回值:错误代码(数值型)

    示例:retcode=pydb. ExitDB(db1)



示例代码

代码块
languagepy
# 注意, 在windows下, pydb.dll 必须改名为:pydb.pyd, linux下则不需要改名

#coding=utf-8
import os
import string
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import pydb

if __name__ == '__main__':
    db1=pydb.InitDB()
    print("NewDB:",db1)
	#retcode=pydb.ConnectFromConfig(db1) 调用这个或者下面这个方法都可以
    retcode=pydb.Connect(db1,"sqlite","eview.db","","")
    print "connect:",retcode
    retcode,errmsg=pydb.ExecuteSQL(db1,"select * from t_device_list")
    print retcode, errmsg
    retcode=pydb.Disconnect(db1)
    print "Disconnect:",retcode
    pydb.ExitDB(db1)

支持的数据库类型

  • Mysql
  • Oracle
  • Sqlite
  • DB2
  • SQL Server
  • PostgreSQL
  • ODBC



配置方法

在config/db.conf文件中进行数据库配置。配置文件中以#号开头的行为注释行。示例:

...

username=root

password=root

Mysql配置

db.conf配置文件内容

dbtype=mysql

connection=127.0.0.1:3306@eview

username=root

password=root

注意事项

Windows下:

必须在eview/bin目录下具有libmysql.dll

...

SQLite配置

db.conf配置文件内容

dbtype=sqlite

注意事项

不配置数据文件的情况下,使用config/eview.db这个缺省的文件

Sqlite为文件型数据库,有可能会导致写入冲突。此时,请更换呢其他数据库类型。

SQL Server配置

db.conf配置文件内容

dbtype=sqlserver

connection=192.168.1.103@master

username=sa

password=sa

注意事项

若要进行sql转储,则在编码集中设置适用编码集

sqlserver默认端口号为:1433

 

PostgreSQL配置

db.conf配置文件内容

dbtype=postgresql

connection=127.0.0.1:5432@eview

username=postgres

password=postgres

注意事项

若要进行sql转储,则在编码集中设置适用编码集

connection 格式:

...

host    all             all              0.0.0.0/0              md5

不需要重启就可以生效,该问题解决

 

Oracle配置

db.conf配置文件内容

dbtype=oracle

connection=orcl

username=system

password=orcl

注意事项

若要进行sql转储,则在编码集中设置适用编码集

需先在系统中配置Oracle网络服务名,如orcl

...

必须在eview/bin目录下具有oci.dll。系统应该自带,如版本冲突则可以从Oracle的安装目录的bin下获取这个文件,并使用Depends工具查看依赖dll是不是这些。

 

DB2配置

db.conf配置文件内容

dbtype=db2

connection=db2alias

username=root

password=root

注意事项

若要进行sql转储,则在编码集中设置适用编码集

需先使用DB2的控制中心,配置DB2数据库别名。

DB2 默认端口号为:5000

 

ODBC配置

db.conf配置文件内容

dbtype=odbc

connection=dsn_name

username=root

password=root

注意事项

需先在windows的控制面板先完成ODBC源的配置。

...