为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:Windows10 专业版 22H2
【CPU】:12th Gen Intel(R) Core(TM) i5-12500 3.00 GHz
【问题描述】*:仿照官网上python的例子,重新写了一个model,但是插入数据的时候报错
model定义: Product.py
# coding: utf-8
from sqlalchemy import Column, Integer, String, Date, Numeric, Text
from sqlalchemy.ext.declarative import declarative_base
# 创建对象的基类:
Base = declarative_base()
class test(Base):
# 表的名字:
__tablename__ = 'test'
# 表的结构:
ID = Column(Integer, autoincrement=True, primary_key=True)
USER = Column(String(20))
查询界面代码: dm_sqlalchemy.py
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from Product import Product, test
def main():
# dialect 是SQLAlchemy用来与各种类型的DBAPI和数据库通信的系统。
conn_url = 'dm+dmPython://BOOKSHOP:bookshop123@127.0.0.1:5236'
# 创建Engine对象
engine = create_engine(conn_url)
# 创建DBSession对象
DBSession = sessionmaker(bind=engine)
test_select(DBSession)
fun_insert_test(DBSession)
def test_select(DBSession):
# 创建Session
session = DBSession()
# 查询所有的
list_product = session.query(test).all()
print('查询所有结果:')
for product in list_product:
print(product.ID, product.USER)
print('')
session.close()
def fun_insert_test(DBSession):
session = DBSession()
new_test = test()
print('-------------------')
print(new_test)
new_test.USER = '水浒传'
session.add(new_test)
session.commit()
print('插入成功')
session.close()
if __name__ == '__main__':
main()
运行后,查询是可以的,但是插入的时候报错
我的model完全是按着实例来写的,而且也创建在BOOKSHOP这个模式下,和示例不一样的地方是通过图形界面创建。不知道哪里的问题,恳请指正!
我大概知道咋个回事了。。应该是和达梦的关键字撞车了。

大家遇到问题可以在sqlalchemy里开启sql语句输出
把输出的SQL放到DM管理工具里试试,在这里调不通的语句,在python下是必然不行的。
反之,在python下可以的语句,说不定放这里面也不行,还是尽量在这里调通了再放到python里吧。。。