3、python-连接sql server

微信公众号:[技术清点]
关注可了解更多信息。问题或建议,请公众号留言;

说明

使用python请求连接sqlserver,需要先安装 pymssql

创建连接

连接代码__connMssql是全局连接名,

# crm 连接
    def conn_mssql(self):
        if self.__connMssql is None:
            self.__connMssql = pymssql.connect(host="192.168.xx.xx", user="xxxx", password="xxxx", database="crm", charset="utf8",autocommit=True)
        self.curMssql = self.__connMssql.cursor()


    def close_mssql(self):
        """关闭数据库连接"""
        if self.__connMssql:
            self.curMssql.close()
            self.__connMssql.close()

查询与更新

同理也是简单调用

    #一般进行更新、删除、插入操作
    def execute_mssql(self, sql, data=None):
        """执行操作数据的相关sql"""
        try:
            self.conn_mssql()
            if data is None:
                self.curMssql.execute(sql)
            else :
                self.curMssql.execute(sql, data)
            
            # sql server 执行无返回结果
            # self.curMssql.commit() 无此方法
        except Exception:
            print("执行保存或更新失败.....", traceback.print_exc())
        finally:
            return False  #self.close_mssql()
        
    # 进行查询操作
    def search_mssql(self, sql):
        """执行查询sql"""
        self.conn_mssql()
        self.curMssql.execute(sql)
        return self.curMssql.fetchall()

使用类封装

把上面相关函数代码放入下面即可使用,这是简单分解

import pymssql
from dateutil import parser
import traceback

class CrmMsConn:
    __connMssql = None

    # crm 连接
    

    # DML 相关操作函数

    # 一般调用查询会存在多个调用查询,这里不执行连接关闭,上面连接有自动提交
    def select_dept_name(self,signName):
        try:
            if signName is None:
                return False
            #sql 语句一般需要什么信息,查询什么信息,这里只是随便写写
            sql = " select b.sName as name, b.jiguan as position,b.smobile as phone,c.sName as dept_name "\
                  " from org_employee b left join org_dep c on b.idDep=c.ID where b.sName='" +signName+ "'"
            for row in self.search_mssql(sql):
                #print(row)
                dept_name = row[3]
                if dept_name:
                    return dept_name
                return False
        except Exception as err:
            print("查询员工出错:",err)
        return False

#调用代码
if __name__ == "__main__":
    crm = CrmMsConn()
    deptName = crm.select_dept_name("沙沙")
    print("部门:"+deptName)



###Tips
下面的是我的公众号二维码图片,欢迎关注。
图注:公众号
注:![二维码图](abced)

发布了6 篇原创文章 · 获赞 0 · 访问量 62

猜你喜欢

转载自blog.csdn.net/spring_boot/article/details/104926254