健康一贴灵,专注医药行业管理信息化

转:Python连接Sqlserver数据库(解决中文乱码版)

#! /usr/bin/env python
#最近折腾MS SQLSERVER ,被中文乱码搞的头大,最后从这个博客中看到解决方法:在建立连接时加入:......,charset='utf-8'
# #coding=utf8 """ Author: Wenlicheng Date: Description:Python连接sqlserver数据库,解决中文乱码问题 """ import pymssql import sys import os reload(sys) sys.setdefaultencoding('utf-8') os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' class MSSQL: """ 对pymssql的简单封装 使用该库时,需要在Sql Server configuration Mnanage里面讲TCP/IP协议开启 """ def __init__(self,host,port,user,pwd,db): self.host = host self.user = user self.port = port self.pwd = pwd self.db = db def __GetConnect(self): """ 得到连接信息 conn.cursor() :return: """ if not self.db: raise (NameError, "没有设置数据库信息") self.conn = pymssql.connect(host=self.host, port=self.port, 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): """ 执行查询语句 返回的是一个包含Tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 :param sql: :return: """ cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #查询完毕后必须关闭连接 self.conn.close() return resList def ExecNonQuery(self,sql): """ 执行非查询语句 :param sql: :return: """ cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close() def main(): ms = MSSQL(host='192.1.1.1', port=1234, user='sa', pwd='123456', db='LearnDB') resList = ms.ExecQuery("""select LastName,Address from person""") for (LastName,Address) in resList: print str(Address) if __name__ == "__main__": main()

  转自:Python连接Sqlserver数据库(解决中文乱码版) - LeechengLove的博客 - CSDN博客

https://blog.csdn.net/LeechengLove/article/details/81036295

 

参考:http://www.cnblogs.com/qianlifeng/archive/2012/02/06/2340367.html

posted @ 2018-12-28 11:15  一贴灵  阅读(3579)  评论(2)    收藏  举报
学以致用,效率第一