源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python连接sql server乱码的解决方法

  • 时间:2022-03-11 07:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python连接sql server乱码的解决方法
vi /etc/freetds/freetds.conf
[u]复制代码[/u] 代码如下:
[global] # TDS protocol version tds version = 8.0 client charset = UTF-8 # A typical Microsoft server [Server55] host = 192.168.1.55 port = 1433 tds version = 8.0 vi /etc/odbc.ini [DSN55] Description=my dsn Driver=TDS Database=qq99 Servername=Server55
tsql -S Server55 -U qq -P 123456 -D qq99
[u]复制代码[/u] 代码如下:
#coding=utf-8 #!/usr/bin/python import pyodbc cnxn = pyodbc.connect("DSN=DSN55;UID=qq;PWD=123456") cursor = cnxn.cursor() cursor.execute('select * from orders where username=?','qq') a=cursor.fetchall() print 'pyodbc',a
关闭连接:
[u]复制代码[/u] 代码如下:
csr.close() del csr conn.close()
python 使用pymssql连接sql server数据库
[u]复制代码[/u] 代码如下:
#coding=utf-8 #!/usr/bin/env python #------------------------------------------------------------------------------- # Name: pymssqlTest.py # Purpose: 测试 pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql # # Author: scott # # Created: 04/02/2012 #------------------------------------------------------------------------------- import pymssql class MSSQL:     """     对pymssql的简单封装     pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql     使用该库时,需要在Sql Server Configuration Manager里面将TCP/IP协议开启     用法:     """     def __init__(self,host,user,pwd,db):         self.host = host         self.user = user         self.pwd = pwd         self.db = db     def __GetConnect(self):         """         得到连接信息         返回: conn.cursor()         """         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):         """         执行查询语句         返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段         调用示例:                 ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")                 resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser")                 for (id,NickName) in resList:                     print str(id),NickName         """         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()         """         cur = self.__GetConnect()         cur.execute(sql)         self.conn.commit()         self.conn.close() def main(): ## ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics") ## #返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 ## ms.ExecNonQuery("insert into WeiBoUser values('2','3')")     ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")     resList = ms.ExecQuery("SELECT id,weibocontent FROM WeiBo")     for (id,weibocontent) in resList:         print str(weibocontent).decode("utf8") if __name__ == '__main__':     main()
注意事项:     使用pymssql进行中文操作时候可能会出现中文乱码,我解决的方案是: 文件头加上 #coding=utf8 sql语句中有中文的时候进行encode    insertSql = "insert into WeiBo([UserId],[WeiBoContent],[PublishDate]) values(1,'测试','2012/2/1')".encode("utf8")  连接的时候加入charset设置信息     pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部