菜鸟一枚liu 2023-07-31 09:12 采纳率: 50%
浏览 6
已结题

Python执行一个插入的存储过程回参获取错误

执行插入存储过程运行报错,报错如下:
哪位大师解答一下啊,如何获取到select 后的 这一部分

declare @RespCode varchar(10); declare @RespMessage varchar(100); declare @OrderId varchar(20);declare @SqNo varchar(3);
 exec zsyy_LockOrder '8072','1086','0000221424','4201241972','1','2023-07-28','08:00:00','111111','PBB00000012795010','1','1','1',@RespCode output,@RespMessage output,@OrderId output,
@SqNo output;select @RespCode as RespCode, @RespMessage as RespMessage,@orderId as orderId,
@SqNo as SqNo 
No results.  Previous SQL was not a query.
Traceback (most recent call last):
  File "D:\Python\Python36\lib\site-packages\spyne\application.py", line 173, in process_request
    ctx.out_object = self.call_wrapper(ctx)
  File "D:\Python\Python36\lib\site-packages\spyne\application.py", line 242, in call_wrapper
    return ctx.descriptor.service_class.call_wrapper(ctx)
  File "D:\Python\Python36\lib\site-packages\spyne\service.py", line 194, in call_wrapper
    return ctx.function(*args)
  File "E:\python\app.py", line 552, in LockOrder
    str_xml_gxhc = insert_data(str_sql)
  File "E:\python\db_odbc.py", line 69, in insert_data
    rows = cursor.execute(str_select).fetchone()
pyodbc.ProgrammingError: No results.  Previous SQL was not a query.
192.168.000.50 - - [31/Jul/2023 09:01:52] "POST /yygh/ HTTP/1.1" 500 313

  • 写回答

3条回答 默认 最新

  • 大师兄6668 新星创作者: python技术领域 2023-07-31 09:25
    关注

    以下回答部分借鉴chatgpt:
    根据您提供的错误信息,报错是因为前一条SQL语句不是查询语句而导致无结果返回。在执行存储过程之后,您需要使用SELECT语句来获取输出参数的值。

    根据您的代码,您可以将以下部分替换到存储过程执行之后:

    SELECT @RespCode as RespCode, @RespMessage as RespMessage, @orderId as orderId, @SqNo as SqNo
    

    这样就可以通过查询语句获取到存储过程执行后的输出参数的值了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月8日
  • 已采纳回答 7月31日
  • 创建了问题 7月31日