开发中需要python远程调用sqlserver存储过程。搜索了网上有两种方式,pymssql和pyodbc。开始采用第一种方式开发,不过无法拿到存储过程中的返回数据,后采用pyodbc开发,当然存储过程中返回数据并不是直接return返回,需要设定一个output类型的参数,然后在结束时设置该参数并select一把方可得到返回。网上也有另外一种思路,写个存储过程中间件调用目标存储过程避免每有返回就得select的情况,该方法为验证。
pymssql 调用代码
try:
#客户姓名 客户消费的店名 货物ID 领取物资的数量
conn = pymssql.connect(host=host,user=user,password=pwd,
database=db,port=port,charset="utf8")
cur = conn.cursor()
if not cur:
raise(NameError,"连接数据库失败")
else:
sql=['set nocount on']
sql.append("exec salesUseMoney @name=%s,@tradName =%s,@goodsid=%s,@quantity=%s,@result=0")
sql.append('declare @return_value int')
sql.append("exec salesUseMoney @name='%s',@tradName &#