dmdb
TypeScript icon, indicating that this package has built-in type declarations

1.0.34946 • Public • Published

dmdb

此包为Node.js连接达梦8数据库的原生驱动,API详见安装目录下的《DM8程序员手册》

仅支持Node.js 12 及以上

Extensions

Change Logs

dmdb v1.0.34946(2025-04-07)

  • 第三方依赖包snappy改为可选,安装和使用驱动时不再强制要求安装snappy依赖。若数据库服务器和数据库驱动通信开启了snappy压缩,则要求必须安装snappy依赖
  • snappy依赖现提供两种选择:snappysnappyjs
    • snappy 性能好,兼容性差,大多数情况下优先考虑snappy
    • snappyjs 纯JavaScript实现的库,兼容性好,国产CPU和操作系统建议用snappyjs
  • 优化自动提交配置策略,优先级顺序从高到低如下:
    • 执行选项 ExecuteOptions.autoCommit / ExecuteManyOptions.autoCommit
    • 驱动全局配置 dmdb.autoCommit
    • 连接串属性/连接属性 localhost:5236?autoCommit=true / ConnectionAttributes.autoCommit
  • 修复一些绑出参数问题
  • 连接串参数switchInterval默认值从1000改为200

dmdb v1.0.33801(2025-02-26)

  • 因影响typeorm-dm,回滚v1.0.31017部分修改,不再支持通过执行选项ExecuteOptions.outFormat设置执行结果中的绑出参数Result.outBinds的返回格式为数组或对象,绑出参数固定为数组

dmdb v1.0.32369(2025-02-11)

  • *修复了日期时间类型在不同时区下转换错误的问题
  • 修复了查询小于公元100年的年份数值错误的问题
  • 连接串参数localTimezone的取值范围从-720720调整为-779840

dmdb v1.0.31017(2024-12-09)

  • 修复了游标类型的绑出参数始终为null的问题,游标类型的绑出参数会根据执行选项ExecuteOptions.resultSet返回ResultSet对象或所有数据行
  • 支持通过执行选项ExecuteOptions.outFormat设置执行结果中的绑出参数Result.outBinds的返回格式为数组或对象

dmdb v1.0.30381(2024-11-14)

  • 查询结果集中,JSON或JSONB类型的数据,自动解析成JSON对象返回(需服务器执行码也支持区分JSON/JSONB和CLOB),该特性控制开关见index.d.ts文件中的
    • parseJson: boolean

dmdb v1.0.24984(2024-04-30)

  • 新增以流的方式读取结果集,详情查看index.d.ts文件中的API:
    • Connection.queryStream(sql: string, bindParams: BindParameters, options: ExecuteOptions): Readable
    • ResultSet.toQueryStream(): Readable

dmdb v1.0.19862(2023-09-18)

  • 修复了以服务名方式连接数据库时,因设置了错误的通信协议版本号导致解析服务器返回的消息Buffer失败的问题

dmdb v1.0.18856(2023-08-18)

  • 修复了连接串属性schema在连接池中失效的问题
  • 修复了连接池加服务名方式连接数据库导致的资源泄露问题
  • 新增连接串参数: language。指定客户端语言,将报错信息按照指定语言返回,目前支持简体中文,英文和繁体中文。详情查看index.d.ts文件中ConnectionAttributes.language

dmdb v1.0.17128(2023-05-06)

  • 新增连接串参数: injectArray。绑定参数为数组时,是否直接注入到SQL语句中,非数组类型的参数不受影响。详情查看index.d.ts文件中ConnectionAttributes.injectArray
  • 支持在连接串上直接配置动态服务名,使用示例:dm://user:password@GroupName?GroupName=(host1:port1,host2:port2,...)

dmdb v1.0.15238(2023-02-02)

  • *从数据库中查询BIGINT列,结果集中该列数据的类型从js的bigint类型修改为了js的number类型 注:如果数据库中该列的值超过js number的安全范围,即-(2^53 - 1) 到 2^53 - 1,则不能保证数据正确性!可以参考dm.fetchAsString和dm.ExecuteOptions.fetchInfo将数值转为字符串来解决
  • *修复了字符大字段(CLOB/TEXT)中存在乱码字符时,读取结果不正确的问题
  • *修复了连接串属性doSwitch=1时,(服务名中的)连接不会自动切换和自动重连的问题
  • 与数据库服务器的内部通信协议版本从v2升级到v8
  • 修复了在极低概率下(约1/65536),因加解密逻辑的缺陷,创建连接时报错:[-2501] 用户名或密码错误
  • 修复了Node.js v14中关闭数据库连接后,Socket占用内存无法被回收的问题

dmdb v1.0.14280(2022-11-24)

  • 修复了Node.js v16及以上版本使用驱动时出现的意外报错:[-4058] ENOENT

dmdb v1.0.13216(2022-10-09)

  • *第三方依赖snappy从v6升级到v7以支持ARM平台安装和使用驱动
  • 修复了当语句或参数长度超过64K字节导致的Buffer写入越界的问题

dmdb v1.0.11090(2022-06-08)

  • *连接池新增等待队列功能。当连接池中连接数达到上限,后续的getConnection()获取连接请求可以被加入到等待队列中,直到连接池内有可用连接,而不是像原来那样直接报错。相关配置参数如下:
    • queueRequests:连接池达到最大连接数后,后续获取连接请求是否进入等待队列,默认true
    • queueMax:获取连接请求等待队列最大长度,-1表示无限制,默认500
    • queueTimeout:进入等待队列的获取连接请求在等待多少毫秒后,认为请求失败,单位毫秒,0表示永久等待,默认60000

dmdb v1.0.10728(2022-04-18)

  • *从数据库中查询NUMBER/NUMERIC列,结果集中该列数据的类型从js的string类型修改为了js的number类型 注:如果数据库中该列的值超过js number的安全范围,即-(2^53 - 1) 到 2^53 - 1,则不能保证数据正确性!可以参考dm.fetchAsString和dm.ExecuteOptions.fetchInfo将数值转为字符串来解决
  • *修复了在获取连接池连接时,当连接已失效且池中连接数小于poolMin阈值时,连接没有自动重连的问题
  • 修复了存储过程绑入boolean类型的参数到其他数据类型导致执行失败的问题

dmdb v1.0.7697 (2021-08-23)

  • *缓存Buffer改进,对于批量执行的大数据量操作有极大的性能提升,建议老版本驱动更新到此版本
  • 对数据库集群的连接做了一些优化处理和功能新增
  • 日期时间的返回格式更精确
  • 支持更多连接串属性,详情查看index.d.ts文件中的API

Readme

Keywords

none

Package Sidebar

Install

npm i dmdb

Weekly Downloads

1,921

Version

1.0.34946

License

none

Unpacked Size

774 kB

Total Files

100

Last publish

Collaborators

  • dameng_database