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 存储过程

使用 pymssql,如何使用输出调用存储过程

带参数的ms sql server的扩展存储过程,怎么传递参数

sql server 存储过程如何调用存储过程

使用 OPENQUERY 语法通过链接服务器 (SQL Server 2005) 调用 MySQL 存储过程(带参数)的问题

sql存储过程参数可省略吗? 存储过程中参数都有默认值,调用时可不可以不传参数呢?