为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8
【操作系统】:Win11
【CPU】:11th Gen Intel(R) Core(TM) i5-1155G7 @ 2.50GHz (8 CPUs),~2.5GHz
【问题描述】*:在进行 pyodbc 连接已配置 ODBC 的达梦数据库时报错找不到指定的程序。在网上搜寻发现没有对应解决的方案,望各位大佬赐教
pyodbc.InterfaceError: ('IM003', '[IM003] 由于系统错误 127: 找不到指定的程序。 (DM8 ODBC DRIVER, D:\\dmdbms\\bin\\dodbc.dll),指定驱动程序无法加载。 (160) (SQLDriverConnect)')
在 odbc64 配置源中能够正常显示连接
而且相关的路径已配置完成(通过 dmpython 可以正常连接),我怀疑是windows 的注册器问题或者是电脑权限不够(已入域)。
以下是一个小用例:
import pyodbc
print([x for x in pyodbc.drivers() if x.startswith('DM8 ODBC DRIVER')])
# 替换为你的 SQL Server 连接信息
dsn = 'DM SQL'
username = 'your_username'
password = 'your_password'
# 构建连接字符串
connection = pyodbc.connect(f'DSN={dsn};' + 'DRIVER={DM8 ODBC DRIVER};',
autocommit=True)
# 创建游标
cursor = connection.cursor()
# 获取所有表格的名称
table_names = []
query = "select * from dba_tables"
# 执行查询
cursor.execute(query)
tables = cursor.fetchall()
# 打印表格名称
print("Tables in the database:")
for table_name in tables:
print(table_name)
# 关闭连接
connection.close()
已解决,受 python 和 pyodbc 版本影响
我的版本是 python:3.7.0,pyodbc:4.0
正常运行的版本 python:3.10.0,pyodbc:5.0