文件名: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
View Code

相关文章:

  • 2021-08-30
  • 2022-02-17
  • 2022-12-23
  • 2021-12-20
  • 2022-01-04
  • 2022-01-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-24
  • 2021-07-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案