Metadata-Version: 2.4
Name: dmpython
Version: 2.5.30
Summary: Python interface to Dameng
License: Python Software Foundation License
Keywords: Dameng
Classifier: Development Status :: 6 - Mature
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Database
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: summary

## dmPython

​	dmPython驱动是Python连接达梦数据库的原生驱动。允许Python程序直接连接到达梦数据库。模块由达梦数据库维护。

​	dmPython 是 DM 依据 Python DB API version 2.0 中 API 使用规定开发的数据库访问接口，Python 应用程序能够通过这些 API 对 DM 数据库进行访问。因 dmPython 通过调用 DM DPI 接口完成 Python 模块扩展，使用whl包安装时无需DPI，使用源码安装时需要配置DPI运行环境。

## Installation

通过命令行执行以下命令:

```
pip install dmPython
```

详见 [dmPython Installation][installation] 。

## Samples

以下为一个基本例子，其余使用例子见[dmPython接口详解][dmPython]:

```python
import dmPython

conn = dmPython.connect('SYSDBA/Dmsys_123@localhost:5236/sch1')
cursor = conn.cursor()

cursor.execute("SELECT * FROM DUAL;")
result = cursor.fetchall()
for row in result:
    print(row)
```

## Help

详细使用手册 [dmPython接口详解][dmPython]。

GitHub源码开源地址 [GitHub][gh]。

## Error Handling

如遇到 ``dmPython.DatabaseError: [CODE:-70089]加密模块加载失败`` 或 ``dmPython.DatabaseError: [CODE:-70089]Encryption module failed to load`` 表示当前系统中的ssl加密模块不满足需求，可以采用更新libssl至 ``1.1`` 及以上版本或者使用环境变量指向dmPython安装完成后在对应的python目录 ``Lib/site-packages目录`` 下的dmssl目录即可，如:

```cmd
$ export LD_LIBRARY_PATH=/usr/local/lib/python3.13/site-packages/dmssl
```

## Extensions

-   支持SQLAlchemy和Django框架，详见[dmSQLAlchemy][dmSQLAlchemy]与[dmDjango][dmDjango]方言包。

## Change Logs

**dmPython v2.5.30(2025-9-3)**

- 修复了多线程并发释放连接的问题

**dmPython v2.5.29(2025-7-31)**

- 增加了parse_type连接参数

**dmPython v2.5.28(2025-7-21)**

- 修复了dmPython查询空间数据的问题

**dmPython v2.5.27(2025-6-17)**

- 修复了dmPython没有对连接参数长度进行检查的问题

**dmPython v2.5.26(2025-4-23)**

- 修复了dmPython使用executemany函数插入数据时，当字符类型数据中存在当前编码无法识别字符时会发生中断的问题

**dmPython v2.5.25(2025-4-15)**

- 修复了dmPython查询大字段时，内存持续增长的问题

**dmPython v2.5.24(2025-4-11)**

- 修复了dmPython.connect函数没有对输入参数user，password，server，schema长度进行判断的问题

**dmPython v2.5.23(2025-4-11)**

- 修复了Connection.shutdown函数没有对输入参数长度进行判断的问题

**dmPython v2.5.22(2025-2-25)**

- 兼容了Oracle在Number类型scale大于0并且为整数时，会输出其小数形式的处理方式

**dmPython v2.5.21(2025-2-19)**

- 增加了对dmPython.CURSOR类型绑定参数执行的支持

**dmPython v2.5.20(2025-1-20)**

- 修复了使用ipv6地址连接达梦数据库失败的问题。
- 修复了当输入参数列中有大字段类型是，获取输出参数失败的问题。

**dmPython v2.5.19(2025-1-6)**

- 修复了bit列值为null时，returning into输出参数报错的问题

**dmPython v2.5.18(2024-12-31)**

- 增加了连接参数dmsvc_path,指定dm_svc.conf路径

**dmPython v2.5.17(2024-12-26)**

- 更改了密码策略，不允许使用默认密码

**dmPython v2.5.16(2024-11-22)**

- 修复了returning into输出参数类型为blob时，会导致程序奔溃的问题
- 修复了dmPython读取bfile有父目录引用时，报错不正常的问题
- 增加了dmPython安装时可以使用drivers目录作为DM_HOME目录的支持

**dmPython v2.5.15(2024-11-20)**

- 修复了dmPython删除不存在的bfile目录时，会导致程序奔溃的问题
- 修复了dmPython的callproc和callfunc函数中的sql注入问题
- 兼容了dm7版本的dpi

**dmPython v2.5.14(2024-11-19)**

- 修复了当update和delete语句影响行数为0时，returing into输出参数会导致程序奔溃的问题

**dmPython v2.5.13(2024-11-14)**

- 修复了DM_HOME的搜索逻辑，会优先在当前目录搜索需要的动态库，然后才会去父目录搜索
- 增加了在使用繁体中文时，使用不支持繁体中文编码的时的报错

**dmPython v2.5.12(2024-11-13)**

- 修复了dmPython使用编码方式PG_ISO_8859_11，PG_KOI8R、PG_SQL_ASCII连接数据库报错的问题

**dmPython v2.5.11(2024-9-20)**

- 修复了绑定参数输入blobl或clob数据时，程序奔溃的问题
- 消除了Python3.12版本安装dmPython时的警告

**dmPython v2.5.10(2024-9-20)**

- 修复了returning into输出参数返回多行结果时，无法输出空数据的问题

**dmPython v2.5.9(2024-8-29)**

- 增加了对多租户连接参数的支持
- 修复了游标读取bfile数据后，退出程序时报错资源清理出错的问题

**dmPython v2.5.8(2024-7-3)**

- 修复了多线程下更新blob和clob数据会发生阻塞的问题
- 增加了对nls_numeric_characters参数的支持，支持以字符串格式返回非标准时间类型
- 修复了超长数据插入时的字符串截断问题

**dmPython v2.5.7(2024-4-15)**

- 适配dpi prepare本地化的修复，调整了一些函数的使用顺序
- 增加了returning into输出参数支持返回多行结果的支持

**dmPython v2.5.6(2023-12-7)**

- 修复了获取变长字符串类型时，相关描述信息不准确的问题

**dmPython v2.5.5(2023-11-8)**

- 增加了对Python3.12版本的支持

**dmPython v2.5.4(2023-10-25)**

- 修复了数据库推荐类型为varchar，传入参数类型为int，数据类型转换失败的错误





[dmPython]: https://eco.dameng.com/document/dm/zh-cn/pm/dmpython-interface.html
[dmSQLAlchemy]: https://eco.dameng.com/document/dm/zh-cn/pm/dmsqlalchemy-dialect-package.html
[gh]: https://github.com/DamengDB/dmPython
[dmDjango]: https://eco.dameng.com/document/dm/zh-cn/pm/dmdjango-drive.html
[samples]: https://github.com/oracle/python-oracledb/tree/main/samples
[installation]: https://eco.dameng.com/document/dm/zh-cn/pm/dmpython-installation.html
