达梦数据库的dmPython的基本使用介绍

1.查看操作系统版本

cat /etc/*release*

2.查看主机已安装的python版本

python --version

 

 

3.下载dmPython安装包

到达梦网站“应用开发指南”的“Python语言”页面可以获取python驱动源码包,本地下载好后再上传到主机上,或者也可以直接在主机上用命令行方式下载

或者

wget https://download.dameng.com/eco/docs/python-126594-20201027.zip

4.解压压缩包

unzip python-126594-20201027.zip

5.安装 

cd python/dmPython_C/dmPython/

python setup.py install

会发现报错了,根据报错的大概意思是找不到达梦数据库软件安装的位置

到达梦数据库的安装目录下看看,一般驱动放在driver目录下,发现里面没有python目录,正好可以把下载解压后的python目录放进去

 

 

再次进入python目录安装试试

 

会发现还是会报同样的错误,想到这是用的root用户安装的,root用户下应该是没有配置达梦数据库的环境变量,验证一下看看

发现确实没有,添加达梦数据库的环境变量,然后再source即时生效,最后再安装试试

 会发现中间会有一些警告,这些不影响,最终都完成安装了,所以当遇到那个报错后,最重要的是要配置好达梦数据库的环境

6.测试python连接

创建一个python脚本,脚本内容如下,然后给脚本执行权限,再执行看下是否能正常连接

#!/usr/bin/python
#coding:utf-8
import dmPython
try:
       conn = dmPython.connect(user='SYSDBA', password='Dameng123', server='localhost',  port=5237)
          cursor  = conn.cursor()
             print('python: conn success!')
                conn.close()
except (dmPython.Error, Exception) as err:
       print(err)

 

搜索了相关错误,这种一般是因为python对缩进非常敏感,是缩进不符合要求,若有遇到这种的,可以调整报错的行的缩进后再看下情况 

发现连接正常了

7.测试简单的创建、增删改查

测试方法和步骤6一样,脚本里添加了创建、增删改查的内容,脚本具体内容如下,注意每行的缩进,否则会报错:

#!/usr/bin/python
#coding:utf-8
import dmPython
try:
        conn = dmPython.connect(user='SYSDBA', password='Dameng123', server='localhost',  port=5237)
        cursor  = conn.cursor()
        print('python: connect success!')
        try:
#创建表
           cursor.execute ('create table sysdba.python_test(id int,name varchar(10))')
           print('python: create success!')
        except (dmPython.Error, Exception) as err:
           print(err)

        try:
#插入数据
             cursor.execute ("insert into sysdba.python_test values(10,'aa')")
             cursor.execute ("insert into sysdba.python_test values(20,'bb')")
             cursor.execute ("insert into sysdba.python_test values(30,'cc')")
             print('python: insert success!')
#删除数据
             cursor.execute ("delete from sysdba.python_test where id=10")
             print('python: delete success!')
#更新数据
             cursor.execute ("update sysdba.python_test set name='ww' where id=30")
             print('python: update success!')
#查询数据
             cursor.execute ("select name from sysdba.python_test")
             res = cursor.fetchall()
             for tmp in res:
                for c1 in tmp:
                    print c1

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

        conn.close()
except (dmPython.Error, Exception) as err:
        print(err)

 

8.绑定变量测试

#!/usr/bin/python
#coding:utf-8
import dmPython
try:
    conn = dmPython.connect(user='SYSDBA', password='Dameng123', server='localhost',  port=5237)
    cursor  = conn.cursor()
    print('python:connect success!')
    try:
        #清空表数据
        cursor.execute ('delete from sysdba.python_test')
        print('python:delete success!')
    except (dmPython.Error, Exception) as err:
        print(err)
        try:
            #插入数据
            aa = [('test')]
            cursor.execute ("insert into sysdba.python_test(name) values(?)", aa)
            print('python: insert success!')
            #查询数据
            cursor.execute ("select name from sysdba.python_test")
            res = cursor.fetchall()
            for tmp in res:
                for c1 in tmp:
                    print c1
                    print('python: select success!')
        except (dmPython.Error, Exception) as err:
            print(err)
            conn.close()
except (dmPython.Error, Exception) as err:
            print(err)

 

注意:脚本代码中除了要注意缩进外,还需要注意每个层级关系,若层级缩进不对,也许不会报错,但同时也不会有结果返回,比如绑定变量这个测试,当插入数据那段try缩进更多,则只会执行连接和清空数据,下面的都不会执行,也同时不会有报错信息返回,注意不能正确执行的脚本和能正确执行脚本红框处的不同

 

 最终测试也正常了

更多资讯请上达梦技术社区了解:https://eco.dameng.com

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值