第一步---新建DMSQL.py文件,python封装DM8---
import dmPython
class MyDM():
def __init__(self, user, password,server,port,): #类的构造函数,初始化
self.user = user #用户名
self.password = password #密码
self.server = server #服务地址
self.port = port #端口号
#执行数据库连接
def get_con(self):
try:
conn = dmPython.connect(user=self.user, password=self.password, server=self.server, port=self.port, autoCommit=True)
return conn
except:
print('dmPython Error:%s')
#执行查询语句
def ExecQuery(self, sql):
try:
con = self.get_con() #连接数据库
cur = con.cursor() #将数据库连接信息赋给cur
cur.execute(sql) # 执行sql语句
fc = cur.fetchall() # 获得所有的查询结果
return fc #返回查询结果
except:
print('dmPython Error') #查询不到报错
finally:
con.close() #查询完毕后关闭连接
#执行非查询语句
def ExecNonQuery(self,sql):
"""
执行非查询语句
cur = self.__GetConnect()
cur.execute(sql)
self.conn.commit()
self.conn.close()
"""
try:
con = self.get_con()
cur = con.cursor()
except :
print("error")
cur.execute(sql)
con.commit()
con.close()
if __name__ == "__main__":
db = MyDM( server='127.0.0.1', port=5236, user='SYSDBA', password='123456789')
# insert_by_param()
# select_by_where()
# delete_by_where()
# select_all()
# update_by_where()
#delete_nowhere()
--------------------------------------------------------------------------------------- 第二步---同目录下新建DMSQL.txt文件,内容如下--- YELLOW #用户名 123456789 #密码 127.0.0.1 #IP地址 5236 #端口号 ---------------------------------------------------------------------------------------
第三步---新建一个publicFA.py文件,调用MyDM类,连接DM数据库---
from DMSQL import MyDM
def get_DMsql(): # 达梦库
r = []
with open('DMSQL.txt', 'r') as f:
for line in f:
r.append(list(line.strip('\n').split(','))[0])
DMsql = MyDM(user="%s" % r[0], password="%s" %r[1], server="%s" % r[2], port="%s" % r[3])
return DMsql
---------------------------------------------------------------------------------------------------------------------------------
第四步---进行数据库增删改查---
from publicFA import get_DMsql#调用函数
DMsql=get_DMsql()#连接达梦数据库
result=DMsql.ExecQuery("select * from INI_PIII ")#查询语句
#------------非查询语句(增、删、改)
result=DMsql.ExecNonQuery("delete from INI_PIII where STCD=40104360")
result=DMsql.ExecNonQuery("insert into INI_PIII(STCD,ID,CV,CS,X,HIDE) VALUES(40104360,9,9,9,9,9)")
result=DMsql.ExecNonQuery("update INI_PIII set HIDE=1 where STCD=40104360")
注:查询和非查询语句如何不带模式名,见该专栏下《python操作达梦数据库,怎么写SQL如何才能不带上模式名?》