文件名:mssqlDB.py
1、导入模块:
# -*- coding:utf-8 -*- import pymssql #import numpy as np
2、配置辅助类:
class Configration: """数据库设置""" host="10.10.15.55" port=1433 user="sa" pwd="Aa123456" db="testDB" def __init__(self): pass
3、连接数据库辅助类:
class UniqueObject(Configration): #only offer a support of connecting db """description of class""" cur=None conn=None def __init__(self): Configration.__init__(self) def __del__(self): if self.conn!=None: self.conn.close() print(">>>>>>>>>>>>>>>>>Connection has been closed!<<<<<<<<<<<<<<<<<<<") @staticmethod def GetObject(): if UniqueObject.cur==None: print(">>>>>>>>>>>>>>>>>Connecting to Database.....<<<<<<<<<<<<<<<<<<") return UniqueObject.__GetConnect() return UniqueObject.conn,UniqueObject.cur def __GetConnect(): if not Configration.db: raise(NameError,"no db Info") UniqueObject.conn =pymssql.connect(host=Configration.host,port=Configration.port,\ user=Configration.user,password=Configration.pwd,\ database=Configration.db,charset="utf8") UniqueObject.cur=UniqueObject.conn.cursor() if not UniqueObject.cur: raise(NameError,"Connection error!") else: return UniqueObject.conn,UniqueObject.cur
4、数据操作类:
class MSSQL(): conn,cur=UniqueObject.GetObject() def __init__(self): pass def __del__(self): #print("\n MSSQL object has been realsed!") pass #普通查询 def GetQuery(self,sql): # MSSQL.cur.execute(sql) # reslist=self.cur.fetchall() # return reslist #cur = conn.cursor() result = [] try: MSSQL.cur.execute(sql) index = MSSQL.cur.description for res in MSSQL.cur.fetchall(): row = {} for i in range(len(index)): row[index[i][0]] = res[i] result.append(row) #MSSQL.cur.close() except: print(">>>>>>>>>>>>>>>>>GetQuery exception.....<<<<<<<<<<<<<<<<<<") return result #带分页查询 def GetQueryPage(self,sql): result = [] jieguo = {} try: MSSQL.cur.execute(sql) index = MSSQL.cur.description for res in MSSQL.cur.fetchall(): row = {} for i in range(len(index)): row[index[i][0]] = res[i] result.append(row) jieguo['datalist'] = result #循环多个结果集 for k in range(1,10) : if MSSQL.cur.nextset(): result1 = [] index = MSSQL.cur.description for res1 in MSSQL.cur.fetchall(): row = {} for i in range(len(index)): row[index[i][0]] = res1[i] result1.append(row) jieguo['datalist'+str(k)] = result1 else: print('循环结束') break; #MSSQL.cur.close() except: print(">>>>>>>>>>>>>>>>>GetQueryPage exception.....<<<<<<<<<<<<<<<<<<") return jieguo #执行SQL def ExecQuery(self,sql): try: MSSQL.cur.execute(sql) result = MSSQL.cur.rowcount MSSQL.conn.commit() return result except: print("\nInserting exception!") return -1
5、整合版源码:
# -*- coding:utf-8 -*- import pymssql #import numpy as np class Configration: """数据库设置""" host="10.10.15.55" port=1433 user="sa" pwd="Aa123456" db="testDB" def __init__(self): pass class UniqueObject(Configration): #only offer a support of connecting db """description of class""" cur=None conn=None def __init__(self): Configration.__init__(self) def __del__(self): if self.conn!=None: self.conn.close() print(">>>>>>>>>>>>>>>>>Connection has been closed!<<<<<<<<<<<<<<<<<<<") @staticmethod def GetObject(): if UniqueObject.cur==None: print(">>>>>>>>>>>>>>>>>Connecting to Database.....<<<<<<<<<<<<<<<<<<") return UniqueObject.__GetConnect() return UniqueObject.conn,UniqueObject.cur def __GetConnect(): if not Configration.db: raise(NameError,"no db Info") UniqueObject.conn =pymssql.connect(host=Configration.host,port=Configration.port,\ user=Configration.user,password=Configration.pwd,\ database=Configration.db,charset="utf8") UniqueObject.cur=UniqueObject.conn.cursor() if not UniqueObject.cur: raise(NameError,"Connection error!") else: return UniqueObject.conn,UniqueObject.cur class MSSQL(): conn,cur=UniqueObject.GetObject() def __init__(self): pass def __del__(self): #print("\n MSSQL object has been realsed!") pass def GetQuery(self,sql): # MSSQL.cur.execute(sql) # reslist=self.cur.fetchall() # return reslist #cur = conn.cursor() result = [] try: MSSQL.cur.execute(sql) index = MSSQL.cur.description for res in MSSQL.cur.fetchall(): row = {} for i in range(len(index)): row[index[i][0]] = res[i] result.append(row) #MSSQL.cur.close() except: print(">>>>>>>>>>>>>>>>>GetQuery exception.....<<<<<<<<<<<<<<<<<<") return result #带分页查询 def GetQueryPage(self,sql): result = [] jieguo = {} try: MSSQL.cur.execute(sql) index = MSSQL.cur.description for res in MSSQL.cur.fetchall(): row = {} for i in range(len(index)): row[index[i][0]] = res[i] result.append(row) jieguo = { "datalist":result} #2.下一个结果集 if MSSQL.cur.nextset(): result1 = [] index = MSSQL.cur.description for res in MSSQL.cur.fetchall(): row = {} for i in range(len(index)): row[index[i][0]] = res[i] result1.append(row) jieguo = { "datalist":result,"datapage":result1} #MSSQL.cur.close() except: print(">>>>>>>>>>>>>>>>>GetQueryPage exception.....<<<<<<<<<<<<<<<<<<") return jieguo def ExecQuery(self,sql): try: MSSQL.cur.execute(sql) result = MSSQL.cur.rowcount MSSQL.conn.commit() return result except: print("\nInserting exception!") return -1