基于达梦数据库开发-python篇

文章目录

  • 前言
  • 一、搭建demo
    • 前提
    • 初始化
    • 简单demo
  • 二、可能出现的异常情况
    • DistutilsSetupError
    • No module named 'dmPython'
    • list报错
  • 总结


前言

出于信创的考虑,近年来基于国产数据库达梦的应用开发逐渐变多。本文将介绍在windows环境下基于DM8版本的python的简单开发使用。


一、搭建demo

前提

需要以下前提

  • 安装了python(本文使用了3.8.5)。
  • 安装了达梦数据库并选择安装了驱动组件。
  • 配置了 DM_HOME 环境变量为安装的达梦数据库路径(本文为D:\dmdbms)
  • 在Path环境变量中添加dpi 的引用路径(本文为D:\dmdbms\drivers\dpi)

初始化

在CMD窗口下,进入达梦安装的python驱动路径下(本文为D:\dmdbms\drivers\python\dmPython),需要注意不同版本的python对应的驱动可能略有不同,
使用如下命令,完成python的达梦包的安装

python setup.py install

简单demo

首先先在达梦数据库中建立相应的账号以及对应的表,并将表中存放简单的测试书(本文建立了名称为TESTDM的账号,以及对应T_CITY_T,具体值如下)
在这里插入图片描述
打开python 的IDLE 工具,依次输入如下命令

>>> import dmPython
>>> conn=dmPython.connect(user='TESTDM',password='123456',server= 'localhost',port=5236)
>>> cursor = conn.cursor()
>>> cursor.execute('select "CITY_ID","CITY_NAME","REGION_ID" from "TESTDM"."T_CITY_T"')
>>> values = cursor.fetchall()
>>> print(values)

输出类似如下结果:

[('BJ      ', '北京', 1), ('SJZ     ', '石家庄', 1), ('SH      ', '上海', 2), ('NJ      ', '南京', 2), ('GZ      ', '广州', 3), ('HK      ', '海口', 3), ('WH      ', '武汉', 4), ('CS      ', '长沙', 4), ('SY      ', '沈阳', 5), ('XA      ', '西安', 6), ('CD      ', '成都', 7), ('BJ      ', '北京', 1), ('SJZ     ', '石家庄', 1), ('SH      ', '上海', 2), ('NJ      ', '南京', 2), ('GZ      ', '广州', 3), ('HK      ', '海口', 3), ('WH      ', '武汉', 4), ('CS      ', '长沙', 4), ('SY      ', '沈阳', 5), ('XA      ', '西安', 6), ('CD      ', '成都', 7), ('WLMQ    ', '乌鲁木齐', 6)]

以上测试表明基于达梦的python开发环境搭建完成。

二、可能出现的异常情况

DistutilsSetupError

在进行达梦包安装时有时会出现如下类似错误:

Traceback (most recent call last):File "setup.py", line 112, in <module>raise SetupError(messageFormat % (userDmHome,DAMENG_VERSION))
distutils.errors.DistutilsSetupError: Dameng home (d:\dmdbms) does not refer to an DM8.1 installation or dmdpi library missing.

这时候需要通过IDLE工具逐步跟踪setup.py的脚本执行情况,可能出错行为

write_pystr='import os\nos.add_dll_directory(r\''+os.environ.get("DM_HOME")+'\\bin'+'\')'

需要调整为

write_pystr='import os \n os.add_dll_directory(r\''+os.environ.get("DM_HOME")+'\\bin'+'\')'

增加相应的空格即可。

No module named ‘dmPython’

在idle执行如下命令:

 import dmPython

可能会出现

Traceback (most recent call last):File "<pyshell#1>", line 1, in <module>import dmPython
ModuleNotFoundError: No module named 'dmPython'

这时候需要采用如下方式
首先在CMD窗口中输入

pip list 

确定是否存在 dyPython,如果不存在则需要进一步核查安装情况,如果存在,则需要关闭idle,再重新打开。

list报错

在安装完dmpython后,执行pip list 可能会出现如下错误

Error processing line 1 of D:\python385\lib\site-packages\dmPython.pth:Traceback (most recent call last):File "D:\python385\lib\site.py", line 169, in addpackageexec(line)File "<string>", line 1, in <module>File "D:\python385\lib\site-packages\dpi.py", line 2os.add_dll_directory(r'd:\dmdbms\bin')^IndentationError: unexpected indent

这时候需要编辑文件dpi.py(默认在python的lib\site-packages路径下,本文为D:\python385\lib\site-packages\dpi.py)
修改

import osos.add_dll_directory(r'd:\dmdbms\bin')

import os
os.add_dll_directory(r'd:\dmdbms\bin')

去除相应的空格

总结

本文讲述了在windows环境下使用python进行达梦数据库开发的简单示例,并对一些可能出现的异常情况进行了阐述,希望能够有助于相关开发人员。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/303540.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PaddleVideo:onnx模型导出

本文节介绍 PP-TSM 模型如何转化为 ONNX 模型&#xff0c;并基于 ONNX 引擎预测。 1&#xff1a;环境准备 安装 Paddle2ONNX python -m pip install paddle2onnx 安装 ONNXRuntime # 建议安装 1.9.0 版本&#xff0c;可根据环境更换版本号 python -m pip install onnxrunti…

windows10/11重启电脑自动开启热点

windows10/11重启电脑自动开启热点 一、前言二、要做的所有步骤及原理2.1 下载文件2.2 打开系统运行PS1文件限制2.3 给.bat文件创建桌面快捷方式2.4 关闭热点&#xff0c;双击快捷方式&#xff0c;查看热点是否成功开启2.5 将快捷方式加入开启自启 一、前言 有某种场景&#x…

华为数通配置旁挂二层组网直接转发实验

配置旁挂二层组网直接转发示例 组网图形 组网需求 AC组网方式&#xff1a;旁挂二层组网。DHCP部署方式&#xff1a; AC作为DHCP服务器为AP分配IP地址。汇聚交换机SwitchB作为DHCP服务器为STA分配IP地址。业务数据转发方式&#xff1a;直接转发。 数据规划 表1 AC数据规划表 …

【C++第二阶段】文件操作

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 文件操作文件写入流程简单的demo写操作 文件读流程二进制写文件二进制读文件 文件操作 文件写入流程 写文件包括以下几个步骤 1.包含头文件 2.创建流对象 3.打开文件&#xff0…

41-软件部署实战(中):IAM系统生产环境部署实战

下面四个步骤来部署IAM应用&#xff1a; 在服务器上部署IAM应用中的服务。配置Nginx&#xff0c;实现反向代理功能。通过反向代理&#xff0c;我们可以通过Nginx来访问部署在内网的IAM服务。配置Nginx&#xff0c;实现负载均衡功能。通过负载均衡&#xff0c;我们可以实现服务…

合并两个单链表

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 但行前路&#xff0c;不负韶华&#…

【教学类-50-05】20240410“数一数”4类图片添加“难度星号”

作品展示 背景需求 前期已经制作了四类“数一数”学具&#xff0c;具体样式如下&#xff1a; 1、难度1.0 【教学类-50-01】20240407“数一数”图片样式01&#xff1a;图形与边框不重合&#xff0c;图形和其他图形不相交-CSDN博客文章浏览阅读293次&#xff0c;点赞20次&…

STL容器之unordered_set类

文章目录 STL容器之unordered_set类1、unordered系列关联式容器2、unordered_set2.1、unordered_set介绍2.2、unordered_set的使用2.2.1、unordered_set的常见构造2.2.2、unordered_set的迭代器2.2.3、unordered_set的容量2.2.4、unordered_set的增删查2.2.5、unordered_set的桶…

考研数学|武忠祥各阶段用书搭配及分享

看到有人问武忠祥老师&#xff0c;不请自来 武忠祥老师&#xff0c;绝对的宝藏老师&#xff0c;我在考研强化阶段的时候听过他的强化课程&#xff0c;听完之后&#xff0c;很多问题都想通了&#xff0c;所以&#xff0c;如果有人想问武忠祥老师行不行&#xff0c;那我就一个字…

短剧在线搜索PHP网站源码

源码简介 短剧在线搜索PHP网站源码&#xff0c;自带本地数据库500数据&#xff0c;共有6000短剧视频&#xff0c;与短剧猫一样。 搭建环境 PHP 7.3 Mysql 5.6 安装教程 1.上传源码到网站目录中 2.修改【admin.php】中&#xff0c; $username ‘后台登录账号’; $passwor…

(2022级)成都工业学院数据库原理及应用实验一:CASE工具概念数据模型建模

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 PowerDesigner 16.1 实验要求 某医院一个门诊部排班管理子系统涉及如下信息&#xff1a; 若干科室&a…

【.Net】Polly

文章目录 概述服务熔断、服务降级、服务限流、流量削峰、错峰、服务雪崩Polly的基本使用超时策略悲观策略乐观策略 重试策略请求异常响应异常 降级策略熔断策略与策略包裹&#xff08;多种策略组合&#xff09; 参考 概述 Polly是一个被.NET基金会支持认可的框架&#xff0c;同…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(四)

本篇内容对应 “2.5 开发登录、退出功能” 小节 “4.7 优化登陆模块” 小节 2.6 显示登录信息 2.7 账号设置 2.8 检查登录状态 登录功能的流程是什么&#xff1f; UUID为什么不会重复&#xff1f; 因为UUID是基于mac物理地址、时间戳、随机数等信息生成。因此UUID居于极高的唯…

【鸿蒙开发】ArkTS和组件

1. 初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性。 当前&#xff0c;ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义了声明式UI描述、自…

Java事件处理机制

一、介绍 java事件处理是采取“委派事件模型”。当事件发生时&#xff0c;产生事件的对象&#xff0c;会把此“信息”传递给"事件的监听者"处理&#xff0c;这里所说的"信息"实际上就是java.awt.event事件类库里某个类所创建的对象&#xff0c;把它称为&q…

2024年AI带来的革命性变革与创新

大家好&#xff01;相信大家对于AI&#xff08;人工智能&#xff09;的发展已经有了一定的了解&#xff0c;但你是否意识到&#xff0c;到了2024年&#xff0c;AI已经变得如此强大和普及&#xff0c;带来了我们从未想象过的便利和创新呢&#xff1f;让我们一起来看看AI在这个时…

基于springboot+vue+Mysql的职称评审管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

4.9日总结

1.MySQL概述 1.数据库基本概念&#xff1a;存储数据的仓库&#xff0c;数据是有组织的进行存储 2.数据库管理系统&#xff1a;操纵和管理数据库的大型软件 3.SQL&#xff1a;操作关系型数据库的编程语言&#xff0c;定义了一套操作型数据库统一标准 2.MySQL数据库 关系型数…

数据结构---顺序表实现

目录 1.顺序表 2.动态顺序表的实现 &#xff08;4&#xff09;顺序表初始化 &#xff08;5&#xff09;顺序表销毁 &#xff08;6&#xff09;顺序表的插入 a.尾插 b.头插 &#xff08;7&#xff09;顺序表的删除 a.尾删 b.头删 &#xff08;8&#xff09;指定位置之…

GitHub 仓库 (repository) Watch - Star - Fork - Follow

GitHub 仓库 [repository] Watch - Star - Fork - Follow References 眼睛图标旁边写着 Watch 字样。点击这个按钮就可以 Watch 该仓库&#xff0c;今后该仓库的更新信息会显示在用户的公开活动中。Star 旁边的数字表示给这个仓库添加 Star 的人数。这个数越高&#xff0c;代表…