Python连接DM8数据库
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
- dmPython在达梦数据库的安装目录下面,路径为【数据库安装路径】/drivers/python(我的安装路径是D:\damba\dm8\drivers\python\dmPython)
进入到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数据库相关推荐
- Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...
- Python连接Oracle数据库,以字典形式返回结果
众所周知,Python连接Oracle数据库,一般都使用cx_Oracle这个包. 但关键是cx_Oracle这个包,返回的结果,都是元组或者列表. 如以下代码: 1 import cx_Oracle ...
- python链接hbase模块_HBase实战(1):使用Python连接Hbase数据库
来源于 https://blog.csdn.net/duan_zhihua/java/article/details/80622166 使用Python连接Hbase数据库 1,Hbase下载. 下载 ...
- python连接各种数据库数据_Python连接各种数据库
1.连接Hive数据库 想直接使用python连接hive数据库,貌似有很多包可以选,网上用的比较多的是PyHive和impyla.这里我直接选用了PyHive. Pyhive这个包安装非常容易,这里 ...
- Python连接Mysql数据库入门
Python 连接mysql数据库入门教程 直接上代码 数据库建表省略 要执行哪段代码把#去掉即可:有文字解释 难度 : ⭐⭐(全星5颗星的情况下) import pymysql # 导入模块 根据P ...
- 【Oracle】Python 连接Oracle 数据库
From: http://space.itpub.net/22664653/viewspace-711728 Python 连接Oracle 数据库,需要使用cx_Oracle 包. 1 下载cx_O ...
- Python连接MySQL数据库(pymysql),DataFrame写入 MySQL(create_engine)- Python代码
模块安装 使用以下命令安装 PyMySQL: $ pip install PyMySQL 若系统不支持 pip,还可以这样安装: $ git clone https://github.com/PyMy ...
- python连接MySQL数据库的示例代码
python连接MySQL数据库 示例代码: ''' 获取数据库连接 host 数据库主机名或者是IP地址 port 数据库连接端口,注意是整型数值,一般是3306 user 登录数据库的用户名 pa ...
- Python连接postgresql数据库入门
关于Python及pycharm的安装参考:1. python+pycharm 安装及测试_Hehuyi_In的博客-CSDN博客_pycharm安装成功测试 首先需要安装 psycopg2模块(已经 ...
最新文章
- R语言使用ggplot2同时可视化dataframe的多个数据列实战:多个数据列可视化在同一个图中、多个数据列可视化在多个图中(纵向多个子图)
- HDOJ2019 ( 数列有序! ) 【水题】
- oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序
- for循环执行 mybatis_MyBatis 插件机制详解
- 阿里云服务器Centos7.0环境Nginx安装
- 数据采集无线网服务器软件,WIFI智能数据盒
- tableau三轴该怎么做_举个栗子!Tableau技巧(30):巧妙实现 双柱图 和 折线图 的组合图表...
- 【HDU 5869】Different GCD Subarray Query【区间不同 gcd 个数】
- js中替换和全部替换
- 如何记账,记录家庭收支情况
- stata输出四分位、中位数的命令是什么?
- < mapreduce >论文学习笔记
- js 空数组直接赋值与push
- 时光里,我们都是赶路人
- 机器学习领域各领域必读经典综述论文整理分享
- uni-app如何自定义内容生成二维码?
- 你刚吃的兰州牛肉面_背后就藏着大数据
- python天天向上续。尽管每天坚持,但人的能力发展并不是无限的,它符合特定模型。实例1的修改。改造实例代码1.1。回文数。
- 学习日志,更新起点爬虫,下载已经付费订阅vip的章节
- 有状态,无状态对象是什么概念
热门文章
- php udp 非阻塞,使用非阻塞udp读取时丢失消息
- Java黑皮书课后题第8章:**8.11(游戏:九个硬币的正反面)一个3*3的矩阵中放置了9个硬币,这些硬币有些面朝上有朝下。1表示正面0表示反面,每个状态使用一个二进制数表示。使用十进制数表示状态
- Java黑皮书课后题第8章:*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列
- 2011年吉林大学计算机研究生机试真题
- 安装Ubuntu 18.04后的一些操作
- vue 实现的评分小星星组件,包括半星
- springboot 不同环境不同的配置
- 关于EGE图形库在CodeBlocks下的配置
- 下一代Asp.net开发规范OWIN(3)—— Middleware
- java中Vector