dmPython

达梦为适配 python 开发出 dmPython 接口,在使用时还需要需要配置 DPI 运行环境。

1 连接方式

dmPython提供两种连接方式,不仅支持 key=value 形式传参连接,也支持连接串方式连接。连接属性主要有:user, password, dsn, hostlserver, port, schema,autocommit等等

1、conn = dmPython.connect(user='SYSDBA', password='wh17xktk!!', server='localhost',port=5236,schema='SYSDBA')

2、dmPython .connect('SYSDBA/SYSDBA@localhost:5236/SYSDBA’)

2接口

2.1 Connection对象接口
Connection.cursor():构造一个当前连接上的cursor对象,用于执行操作操作数据库的命令。
Connection.commit():手动提交当前事务。如果设置了非自动提交模式,可以调用该方法手动提交。
Connection.rollback():手动回滚当前未提交的事务。
Connection.close():关闭与数据库的连接。Connection.explan(sqI):返回指定SQL语句的执行计划。
2.2 Cursor接口

Cursor.callproc(procname,*args):调用存储过程,返回执行后的所有输入输出参数序列。

Cursor.calIfunc(funcname,*args):调用存储函数,返回存储函数执行的返回值以及所有参数值。返回序列中第一个元素为函数返回值,后面的是函数的参数值。如果存储函数带参数,则必须为每个参数键入一个值包括输出参数。
Cursor.prepare(sql):准备给定的sql语句。后续可以不指定SQL,直接调用execute。

Cursor.execute(sql【,parameters]}【,kwargsParams]):执行给定的SQL语句,给出的参数值和 SQL 语句中的绑定参数从左到右一一对应参数缺少则补None,多的则自动忽略。支持按位置动态绑定,按名称动态绑定,按位置绑定数组,按名称绑定字典等。

Cursor.executedirect(sql):执行给定的S C} L语句,不支持参数绑定。
Cursor.executemany(sql,sequence of params):对给定的SQL语句进行批量绑定参数执行。参数用各行的tuple组成的序列给定。
例如:

Seq_params=【(1,'abcdefg’),(2,'uvwxyz'}]
cursor.executemany("insert into test values(?,?)”,Seq_params}

Cursor.close():关闭Cursor对象。
Cursor.next():获取结果集的下一行,返回一行的各列值,返回类型为tuple。如果没有下一行返回None。

Cursor.fetchmany(【rows=Cursor.arraysize]):获取结果集的多行数据,获取行数为rows,默认获取行数为属性Cursor.arraysize值。

cursor.fetchall():获取结果集的所有行。返回所有行数据,返回类型为由各行数据的tuple组成的list。
Cursor. nextset():获取下一个结果集。如果不存在下一个结果集则返回None,否则返回True。
可以使用fetchXXX()获取新结果集的行值。

3、PyCharm 中 Python 操作达梦数据库

3.1、安装 dmPython。

1、进入达梦数据库安装目录下的 dmPython 目录,执行命令 python setup.py install

C:\Users\pc>e:

E:\>cd \dameng\dmdbms8\drivers\python\dmPython

E:\dameng\dmdbms8\drivers\python\dmPython>python setup.py install

达梦数据库 python 写入 达梦数据库python驱动_达梦数据库 python 写入

达梦数据库 python 写入 达梦数据库python驱动_sql_02


2、配置 DPI 环境变量

达梦数据库 python 写入 达梦数据库python驱动_达梦数据库 python 写入_03

3.3.2 PyCharm 配置连接 dm 数据库

1、点击 View 选择Tool Windows 选择 DB Browser。

达梦数据库 python 写入 达梦数据库python驱动_mysql_04

2、配置连接名,描述信息,URL,用户名,密码,驱动。

达梦数据库 python 写入 达梦数据库python驱动_数据库_05

点击测试,测试链接是否成功,连接测试成功后点击Apply点击Ok

达梦数据库 python 写入 达梦数据库python驱动_sql_06

连接成功后可以看到DM数据库中的信息。

达梦数据库 python 写入 达梦数据库python驱动_达梦数据库 python 写入_07

3.3.3 Python操作达梦数据库
# coding:utf-8
import dmPython

try:
    # 创建达梦数据库连接
    conn = dmPython.connect(user='SYSDBA', password='wh17xktk!!', server='localhost',
                            port=5236, schema='SYSDBA')
    # 创建数据库操作对象
    cursor = conn.cursor()
    try:
        # 清空表,初始化测试环境
        cursor.execute('delete from T2')
    except (dmPython.Error, Exception) as err:
        print(err)
    try:
        # 插入数据
        cursor.execute("insert into T2 values(1, 'xswl'), (2, 'xswl'), (3, 'xswl'), (4, 'xswl')")
        print('python: insert success!')
        # 删除数据
        cursor.execute("delete from T2 where id=1")
        print('python: delete success!')

        # 更新数据
        cursor.execute("update T2 set name = 'xktk' where id = 2 or id = 4")
        print('python: update success!')

        # 查询数据
        cursor.execute("select name from T2")
        res = cursor.fetchall()
        for tmp in res:
            for c1 in tmp:
                print c1

        print('python: select success!')
    except (dmPython.Error, Exception) as err1:
        print (err1)
    conn.close()
except (dmPython.Error, Exception) as err:
    print(err)

达梦数据库 python 写入 达梦数据库python驱动_数据库_08


达梦数据库 python 写入 达梦数据库python驱动_达梦数据库 python 写入_09