【问题标题】:Difference between calling stored procedure with `query` and `callproc` in pymssql在 pymssql 中使用 `query` 和 `callproc` 调用存储过程的区别
【发布时间】:2020-02-11 02:45:15
【问题描述】:

我在 SQL Server 上保存了一个存储过程,并使用 pymssql 连接到该数据库。

我可以通过成功调用cursor.query('EXEC FindPerson') 来调用这个过程。 但是我不能使用方法cursor.callproc('FindPerson', (name,)),我得到了这个错误

'NoneType' 和 'int' 的实例之间不支持'

我想知道为什么我不能调用callproc 方法。我想使用callproc 的原因是能够从过程中循环不同的结果集。

我也试过在这个方法上放不同的存储过程,不管我放什么参数,我总是得到同样的错误。所以似乎callproc 方法在执行程序之前就失败了。问题是调用存储过程的正确方法是什么?

下面是一个存储过程的例子。

CREATE PROCEDURE FindPerson
    @name VARCHAR(100)
AS 
BEGIN
    SELECT * 
    FROM persons 
    WHERE name = @name
END

【问题讨论】:

    标签: python sql-server stored-procedures pymssql


    【解决方案1】:

    您需要在元组中传递名称参数。 试试 cursor.callproc('FindPerson', (personname,))

    【讨论】:

    • 我在代码中添加了参数但忘记粘贴了。我遇到了同样的错误。
    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多