注:此文也是转载,2018年1月发现此文阅读量过万,略感不安。当时只是为了自己存档学习,未粘此文的原始连接。如有侵权,通过即删除,敬请谅解!
从网上找的,估计原文是:Python操作SQLServer示例
本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文)。
需要注意的是:读取数据的时候需要decode('utf-8'),写数据的时候需要encode('utf-8'),这样就可以避免烦人的中文乱码或报错问题。
Python操作SQLServer需要使用pymssql模块,使用pip install pymssql安装即可。
此外代码中使用的封装MSSQL类是从网上搜索到的,直接用即可。
# -*- coding:utf-8 -*- import pymssql class MSSQL: def __init__(self,host,user,pwd,db): self.host = host self.user = user self.pwd = pwd self.db = db def __GetConnect(self): if not self.db: raise(NameError,"没有设置数据库信息") self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8") cur = self.conn.cursor() if not cur: raise(NameError,"连接数据库失败") else: return cur def ExecQuery(self,sql): cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #查询完毕后必须关闭连接 self.conn.close() return resList def ExecNonQuery(self,sql): cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close() ms = MSSQL(host="192.168.1.1",user="sa",pwd="sa",db="testdb") reslist = ms.ExecQuery("select * from webuser") for i in reslist: print i newsql="update webuser set name='%s' where id=1"%u'测试' print newsql ms.ExecNonQuery(newsql.encode('utf-8'))