pymssql调用sqlserver存储过程带output 参数
Posted xyzabc0004
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pymssql调用sqlserver存储过程带output 参数相关的知识,希望对你有一定的参考价值。
pymssql调用sqlserver存储过程带output 参数
直接上代码
def api_adddept(): data = json.loads(request.get_data()) userdata={} with UseDataBaseSQLServer() as cursor: msg=cursor.callproc(‘[AppData].[dbo].[Fyit_AddDept]‘, (data["parentdept_add"],data["deptname_add"],1,pymssql.output(str),pymssql.output(str))) userdata[‘result_code‘]=msg[3] userdata[‘result_msg‘]=msg[4] # sql=‘DECLARE @return_value int,@result_code nvarchar(1024),@result_msg nvarchar(1024);‘ # ‘EXEC @return_value = [AppData].[dbo].[Fyit_AddDept] @parentid = {0},@dept = N‘{1}‘,@display = 1,@result_code = @result_code OUTPUT,@result_msg = @result_msg OUTPUT;‘ # ‘SELECT @result_code as N‘@result_code‘,@result_msg as N‘@result_msg‘,@return_value as N‘Return Value‘;‘ # cursor.execute(sql.format(data["parentdept_add"],data["deptname_add"])) # result = cursor.fetchone()
# while result: # userdata[‘resultcode‘]=str(result[0]) # userdata[‘resultmsg‘]=result[0] # userdata[‘returnvalue‘]=str(result[2]) # break resp = jsonify(userdata) resp.status_code = 200 return resp
其上两种写法都可行。
第一种简单,方便。第二种还要自己拼SQL。
以上是关于pymssql调用sqlserver存储过程带output 参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 python pymssql 调用 sql server 存储过程
带参数的ms sql server的扩展存储过程,怎么传递参数
使用 OPENQUERY 语法通过链接服务器 (SQL Server 2005) 调用 MySQL 存储过程(带参数)的问题