Python访问SQL Server数据库

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()

你可能感兴趣的:(Python)