Разница между вызовом хранимой процедуры с помощью `query` и` callproc` в pymssql - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть сохраненная процедура, сохраненная на SQL сервере и использующая pyms sql для подключения к этой базе данных.

Я могу вызвать эту процедуру, успешно вызвав cursor.query('EXEC FindPerson'). Но я не могу использовать метод cursor.callproc('FindPerson', (name,)), я получил эту ошибку

'<' не поддерживается между экземплярами 'NoneType' и 'int' </p>

I Интересно, почему я не могу вызвать callproc метод. Причина, по которой я хочу использовать callproc, состоит в том, чтобы иметь возможность oop отличаться от набора результатов из процедуры.

Я также пытался использовать разные хранимые процедуры для этого метода, независимо от того, какой параметр я ввел, я всегда получал одну и ту же ошибку. Таким образом, кажется, что метод callproc не удалось даже до начала процедуры. Вопрос в том, как правильно вызвать хранимую процедуру?

Ниже приведен пример хранимой процедуры.

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

1 Ответ

0 голосов
/ 11 февраля 2020

Вам необходимо передать имя параметра в кортеже. Попробуйте cursor.callpro c ('FindPerson', (personname,))

...