注册

sqlalchemy连接dm8出错:操作失败: <class 'dmPython.Connection'> returned a result with an exception set

DM_771857 2025/03/21 393 0

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM Database Server 64 V8
【操作系统】:windows11
【CPU】:
【问题描述】*:
SQLAlchemy 2.0.39
dmPython 2.5.8
sqlalchemy_dm 2.0.3
同样的数据库连接信息,dmPython是可以正常连接并插表。
sqlalchemy_dm的安装是安装官方文档教程,在C:\dmdbms\drivers\python\sqlalchemy2.0.0下执行 python setup.py install
pip show sqlalchemy_dm 提示:
EPRECATION: Loading egg at c:\users\wallflower\scoop\persist\python\lib\site-packages\sqlalchemy_dm-2.0.3-py3.12.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.

使用sqlalchemy连接的代码如下:

from sqlalchemy import create_engine, Column, Integer, String, MetaData, Table from sqlalchemy.orm import declarative_base from sqlalchemy.orm import sessionmaker from datetime import datetime # 数据库连接信息 DB_CONFIG = { "user": "SYSDBA", "password": "123456", "server": "localhost", "port": 5236, "schema": "DAILY_INSPECTION", } # 创建数据库连接URL DB_URL = f"dm://{DB_CONFIG['user']}:{DB_CONFIG['password']}@{DB_CONFIG['server']}:{DB_CONFIG['port']}/{DB_CONFIG['schema']}" try: # 创建引擎 engine = create_engine(DB_URL) # 创建基类 Base = declarative_base() # 定义模型类 class SysPerformance(Base): __tablename__ = 'SYS_PERFORMANCE' id = Column(Integer, primary_key=True, autoincrement=True) system_id = Column(Integer, nullable=False) system_name = Column(String(100), nullable=False) menu = Column(String(100), nullable=False) response_time = Column(Integer, nullable=False) # 创建会话 Session = sessionmaker(bind=engine) session = Session() # 插入的数据 new_record = SysPerformance( system_id=1, system_name="System A", menu="Dashboard", response_time=120 ) # 添加并提交数据 session.add(new_record) session.commit() print("数据插入成功!") except Exception as e: print(f"操作失败: {e}") if 'session' in locals(): session.rollback() # 发生异常时回滚事务 finally: # 关闭会话 if 'session' in locals(): session.close()
回答 0
暂无回答
扫一扫
联系客服