1. 测试环境

在Window中使用Python 2.7.5版本以及DM8数据库进行增删改查,以下是踩坑笔记。

软件 版本
DM 数据库 DM 8.0 及以上版本
Python Python 2.7.5
Window10专业版 Window10专业版

注意:实施过程中遇到报错一定要看Q&A中有没有你的问题的解决方案。

2. 步骤

2.1 安装Python

用户请自行下载安装 Python。安装的 Python 2.7.5 版本

2.2 初始化dmPython

  1. dmPython在达梦数据库的安装目录下面,路径为【数据库安装路径】/drivers/python(我的安装路径是D:\damba\dm8\drivers\python\dmPython)

  1. 进入到dmPython中 编译,执行以下命令

    python setup.py install
    

如图所示即为安装成功。

如果出现如下提示error: Microsoft Visual C++ 9.0 is required.请参考【Q&A】中的解决方案

2.3 验证dmPython

如果出现如下则说明安装成功

2.5 测试是否连接成功

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

如果所示,即为成功。

如是下图:

如果提示ImportError: DLL load failed: 找不到指定的模块。请到【Q&A】中查看

2.6 增删改查

#!/usr/bin/python
# coding:utf-8
import dmPythontry:conn = dmPython.connect(user='SYSDBA', password='SYSDBA', server='localhost', port=5236)cursor = conn.cursor()try:# 清空表,初始化测试环境cursor.execute('delete from PRODUCTION.PRODUCT_CATEGORY')except (dmPython.Error, Exception) as err:print(err)try:# 插入数据cursor.execute("insert into PRODUCTION.PRODUCT_CATEGORY(NAME) values('1'), ('2'), ('3'), ('4')")print('python: insert success!')# 删除数据cursor.execute("delete from PRODUCTION.PRODUCT_CATEGORY where name='1'")print('python: delete success!')# 更新数据cursor.execute('update PRODUCTION.PRODUCT_CATEGORY set name = \'222\' where name=\'2\'')print('python: update success!')# 查询数据cursor.execute("select name from PRODUCTION.PRODUCT_CATEGORY")res = cursor.fetchall()for tmp in res:for c1 in tmp:print c1print('python: select success!')except (dmPython.Error, Exception) as err1:print (err1)conn.close()
except (dmPython.Error, Exception) as err:print(err)

Q&A

1. pip安装三方库不成功

提示:WARNING: You are using pip version 20.2.3, however version 20.2.4 is available.

原因:pip版本过低导致安装第三方库失败

## 直接输入下面命令解决
python -m pip install --upgrade pip

2. error: Microsoft Visual C++ 9.0 is required

原因:包编译的时候缺少C++的编译环境,所以只需要安装即可,安装网盘链接中VCForPython27.msi文件。下载完成后双击安装

3. 控制台乱码

修改Pycharm的编码,window默认是gbk。

解决方案

4.ImportError: DLL load failed: 找不到指定的模块

调用达梦数据库时需要调用DM数据库的一些DLL文件,因为找不到所以报错了。

解决方案

在项目启动时,在Environment variables中配置环境变量

注意:D:\damba\dm8是我本地dm的安装路径,需要替换成自己的。

PYTHONUNBUFFERED=1;PATH=PATH=D:\damba\dm8\drivers\\;D:\damba\dm8\drivers\logmnr\\;D:\damba\dm8\bin

资料

链接:https://pan.baidu.com/s/1Xv8xmy83VbA42FVk7_NtPA 提取码:b2u8

=======================================

有任何问题请到技术社区反馈。

24小时免费服务热线:400 991 6599

达梦技术社区:https://eco.dameng.com

Python连接DM8数据库相关推荐

  1. Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法

    Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...

  2. Python连接Oracle数据库,以字典形式返回结果

    众所周知,Python连接Oracle数据库,一般都使用cx_Oracle这个包. 但关键是cx_Oracle这个包,返回的结果,都是元组或者列表. 如以下代码: 1 import cx_Oracle ...

  3. python链接hbase模块_HBase实战(1):使用Python连接Hbase数据库

    来源于 https://blog.csdn.net/duan_zhihua/java/article/details/80622166 使用Python连接Hbase数据库 1,Hbase下载. 下载 ...

  4. python连接各种数据库数据_Python连接各种数据库

    1.连接Hive数据库 想直接使用python连接hive数据库,貌似有很多包可以选,网上用的比较多的是PyHive和impyla.这里我直接选用了PyHive. Pyhive这个包安装非常容易,这里 ...

  5. Python连接Mysql数据库入门

    Python 连接mysql数据库入门教程 直接上代码 数据库建表省略 要执行哪段代码把#去掉即可:有文字解释 难度 : ⭐⭐(全星5颗星的情况下) import pymysql # 导入模块 根据P ...

  6. 【Oracle】Python 连接Oracle 数据库

    From: http://space.itpub.net/22664653/viewspace-711728 Python 连接Oracle 数据库,需要使用cx_Oracle 包. 1 下载cx_O ...

  7. Python连接MySQL数据库(pymysql),DataFrame写入 MySQL(create_engine)- Python代码

    模块安装 使用以下命令安装 PyMySQL: $ pip install PyMySQL 若系统不支持 pip,还可以这样安装: $ git clone https://github.com/PyMy ...

  8. python连接MySQL数据库的示例代码

    python连接MySQL数据库 示例代码: ''' 获取数据库连接 host 数据库主机名或者是IP地址 port 数据库连接端口,注意是整型数值,一般是3306 user 登录数据库的用户名 pa ...

  9. Python连接postgresql数据库入门

    关于Python及pycharm的安装参考:1. python+pycharm 安装及测试_Hehuyi_In的博客-CSDN博客_pycharm安装成功测试 首先需要安装 psycopg2模块(已经 ...

最新文章

  1. R语言使用ggplot2同时可视化dataframe的多个数据列实战:多个数据列可视化在同一个图中、多个数据列可视化在多个图中(纵向多个子图)
  2. HDOJ2019 ( 数列有序! ) 【水题】
  3. oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序
  4. for循环执行 mybatis_MyBatis 插件机制详解
  5. 阿里云服务器Centos7.0环境Nginx安装
  6. 数据采集无线网服务器软件,WIFI智能数据盒
  7. tableau三轴该怎么做_举个栗子!Tableau技巧(30):巧妙实现 双柱图 和 折线图 的组合图表...
  8. 【HDU 5869】Different GCD Subarray Query【区间不同 gcd 个数】
  9. js中替换和全部替换
  10. 如何记账,记录家庭收支情况
  11. stata输出四分位、中位数的命令是什么?
  12. < mapreduce >论文学习笔记
  13. js 空数组直接赋值与push
  14. 时光里,我们都是赶路人
  15. 机器学习领域各领域必读经典综述论文整理分享
  16. uni-app如何自定义内容生成二维码?
  17. 你刚吃的兰州牛肉面_背后就藏着大数据
  18. python天天向上续。尽管每天坚持,但人的能力发展并不是无限的,它符合特定模型。实例1的修改。改造实例代码1.1。回文数。
  19. 学习日志,更新起点爬虫,下载已经付费订阅vip的章节
  20. 有状态,无状态对象是什么概念

热门文章

  1. php udp 非阻塞,使用非阻塞udp读取时丢失消息
  2. Java黑皮书课后题第8章:**8.11(游戏:九个硬币的正反面)一个3*3的矩阵中放置了9个硬币,这些硬币有些面朝上有朝下。1表示正面0表示反面,每个状态使用一个二进制数表示。使用十进制数表示状态
  3. Java黑皮书课后题第8章:*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列
  4. 2011年吉林大学计算机研究生机试真题
  5. 安装Ubuntu 18.04后的一些操作
  6. vue 实现的评分小星星组件,包括半星
  7. springboot 不同环境不同的配置
  8. 关于EGE图形库在CodeBlocks下的配置
  9. 下一代Asp.net开发规范OWIN(3)—— Middleware
  10. java中Vector