1、 有两个Python的SQLServer驱动,一个是pyodbc、另外一个是pymssql,选择期中的一个即可以,然后配置你的开发环境。
pip install pymssql即可安装pymssql库。
备注:安装的过程中可能会出现找不到sqlfront.h文件的错误。
解决办法:从https://github.com/ramiro/freetds/releases下载v0.95.95,解压后将include目录的文件拷贝到python的linclude目录下,将lib-nossl目录下的文件拷贝到python的libs目录下,即可以编译通过。(在Windows平台下通过)
如果是Linux平台,直接安装freetds即可以,如:yuminstall freetds。
2、 使用pymssql
import pymssql
# 创建数据库连接
def
createConnection():
conn = pymssql.connect(
server=
'ip地址',
user=
'sa',
password=
'password',
database=
'sales')
return conn
#关闭数据库连接。
def
closeConnection(
conn):
conn.close()
#插入一行数据
def
insertRow(
conn):
print(
"开始插入数据")
cursor = conn.cursor()
#cursor.execute("insert into Product([Name], ProductNumber) values('SQL Server Express', 'SQLEXPRESS');")
cursor.execute(
"insert into Product([Name], ProductNumber) OUTPUT INSERTED.ProductId values('SQL Server Express', 'SQLEXPRESS');")
#如果在这里调用commit,fetchone返回的数据就是空。
row = cursor.fetchone()
while row:
print(
"Insert Product ID :" +
str(row[
0]))
row = cursor.fetchone()
#需要调用commit提交数据,默认不会自动提交。
conn.commit()
print(
"插入数据结束")
# 查询数据
def
queryRows(
conn):
print(
"开始查询数据")
cursor = conn.cursor()
cursor.execute(
"select * from Product;")
row = cursor.fetchone()
while row:
print(
"Product ID = " +
str(row[
0]))
row = cursor.fetchone()
print(
"查询数据结束。")
def
queryMaxID(
conn):
cursor = conn.cursor()
cursor.execute(
"select MaxId=max(ProductId) from Product;")
row = cursor.fetchone()
print(
"最大的产品ID = " +
str(row[
0]))
#事务处理
def
rollbackTransaction(
conn):
print(
"开始事务")
cursor = conn.cursor()
cursor.execute(
"begin transaction")
cursor.execute(
"insert into Product([Name], ProductNumber) OUTPUT INSERTED.ProductId values('roll back transaction', 'bollback');")
conn.rollback()
print(
"回滚事务")
def
main():
conn = createConnection()
insertRow(conn)
print(
"")
queryRows(conn)
print(
"")
print(
"事务测试之前")
queryMaxID(conn)
rollbackTransaction(conn)
print(
"事务测试之后")
queryMaxID(conn)
closeConnection(conn)
print(
"运行完毕。")
if
__name__ ==
'__main__':
main()