✍73 配置sqlalchemy及STPython

使用 SQLAlchemy 来操作神通数据库

需对原有 SQLAlchemy 包进行扩展 :

  • 神通 oscar 方言 (mysql, oracle之类的数据库都有方言)

对Python解释器也进行扩展:

  • 神通 STPython 接口
  • 神通 ACI 接口

私有库 : https://gitee.com/wx_3d25ad0b9a/shentong_Python_sql

一.部署软件版本

软件 版本
python 支持SQLAlchemy1.4.15的版本
STPython 按Python版本选择(私有库文件)
ACI 无(私有库文件)
sqlalchemy 1.4.15(当前这个版本支持oscar)
oscar方言 按sqlalchemy版本选(私有)

二.软件安装

1.sqlalchemy 安装

pip install sqlalchemy==1.4.15

2.STPython 安装

  • 选择相应系统相应Python版本进行安装
pip install STPython-2.0.13-cp37-cp37m-linux_x86_64.whl

3.ACI 安装

aci-2.0.44 文件中 bin 目录下的2个dll文件(win)或者so文件(linux)放入 python 解释器site-packages

image-20220401174319760

image-20220401174341020

4.oscar 方言安装

选择相应系统的文件夹 :

例如 linux : stpython-2.0.13.linux64.publish\STPython\Orm-sqlalchemy\sqlalchemy-1.4.15\oscar

将整个 oscar 文件夹放入 Python 解释器 xxxx\Lib\site-packages\sqlalchemy\dialects

神通 oscar 方言不区分平台,方言只和 SQLAlchemy 的版本有关

image-20220401174510404

image-20220401175319372

5.代码测试

from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine, MetaData, or_, join, outerjoin
from sqlalchemy import Column, String, Integer, Float, Boolean, DECIMAL
from sqlalchemy import Enum, Date, DateTime, Time, Text
from sqlalchemy import LargeBinary, UnicodeText, TIMESTAMP
from sqlalchemy import func, Table
from sqlalchemy.dialects.oscar import CLOB, BLOB


# 创建引擎
engine = create_engine("oscar+stpython://sysdba:168168@10.64.66.118:2003/SONG_TEST", echo=False)

# 建立 session 链接(connect), 绑定 engine
session = sessionmaker(bind=engine)

# 建立游标 cursor
cursor = session()

# 执行 sql 语句
res = cursor.execute("select * from test").fetchall()
print(res)

# 关闭游标
cursor.close()

# 关闭引擎
engine.dispose()

更多操作查看文档

posted @ 2022-11-10 15:21  给你骨质唱疏松  阅读(258)  评论(0编辑  收藏  举报