Я использую raw_connection в sqlalchemy для выполнения некоторого SQL, который запускает хранимую процедуру.Выполнение хранимых процедур в sqlalchemy
сохраненный proc выбирает идентификатор параметра в конце. Как я могу поймать этот идентификатор?
код питона:
import sqlalchemy as sa
SQLCommand = """
DECLARE @Msg varbinary(max) = CAST(%s AS varbinary(max))
EXECUTE dbo.usp_procedure @Type = 32, @header = %s, @store = @Msg
""" % (Datacontent, var)
Engine = sa.create_engine(connection_string)
Connection = Engine.raw_connection()
cursor = Connection.cursor()
cursor.execute(SQLCommand)
return_key = list(cursor.fetchall())
Connection.commit()
Connection.close()
Я думал, return_key будет содержать код возврата usp_procedure но это ошибка, и я получаю:
No results. Previous SQL was not a query.
Процедура имеет в качестве конечной стадии:
SELECT @ParamID
Я хочу, чтобы иметь возможность прочитать этот код еще в моем коде на Python
Я не использую 'sql-server', поэтому я не могу проверить реальный синтаксис, но я бы предложил вам использовать выходной параметр в вашей хранимой процедуре, подобный [this SO question] (http: // stackoverflow .com/вопросы/191644/как-делать-вы-получить выходные-параметры-с-а-хранимой процедуры-в-питон). Если вы просто сделаете 'print' в своей хранимой процедуре, будет сложнее вернуть значение. Надеюсь, поможет. – lrnzcig
Хорошо, что разработчик внес изменения в процедуры, чтобы иметь выходной параметр, но все еще имеющий проблемы. – KillerSnail