'''
1. 本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文)。
2. 需要注意的是:读取数据的时候需要decode('utf-8'),写数据的时候需要encode('utf-8'),这样就可以避免烦人的中文乱码或报错问题。
3. Python操作SQLServer需要使用pymssql模块,使用pip install pymssql安装即可。
此外代码中使用的封装MSSQL类是从网上搜索到的,代码可以封装成一个工具类,直接用即可。
self在定义时需要定义,但是在调用时会自动传入。
self的名字并不是规定死的,但是最好还是按照约定是用self
self总是指调用时的类的实例。
'''
# -*- coding:utf-8 -*-
import pymssql
class Mssql:
def __init__(self):
# 数据库连接参数
self.host = '127.0.0.1'
self.user = 'sa'
self.pwd = '123456'
self.db = 'test'
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")
cursor = self.conn.cursor()
if not cursor:
raise(NameError, "连接数据库失败")
else:
return cursor
# 查
def execQuery(self, sql):
cursor = self.getConnect()
cursor.execute(sql)
resList = cursor.fetchall() # 获取查询的所有数据
# 查询完毕后必须关闭连接
self.conn.close()
return resList
# 增删改查
def execNonQuery(self, sql):
cursor = self.getConnect()
cursor.execute(sql)
self.conn.commit()
self.conn.close()
ms = Mssql()
# 查
reslist = ms.execQuery("select * from dbo.flow_original_batch")
for i in reslist:
print(i)
# 改
newsql = "update dbo.flow_original_batch set dealerscode='%s' where batchid='149-YLQY025960-20191009'" % u'测试'
print(newsql)
ms.execNonQuery(newsql.encode('utf-8'))
Python连接SQLServer数据库
最新推荐文章于 2024-06-29 10:54:30 发布