Ошибка последовательности функций в Python из pyodbc при получении идентификатора строки, вставленной в MSSQL - PullRequest
1 голос
/ 06 апреля 2019

Я пытаюсь добавить новую автоматически увеличенную строку в базу данных MSSQL и прочитать созданное значение идентификатора.Когда я делаю, оператор SQL работает нормально, но как только я пытаюсь запросить строку из возвращенного объекта ResultProxy, я получаю «Ошибка последовательности функций»

Я использую SQL Alchemy (pyodbc) для подключения к базе данных.и используя execute () для запуска текстовых запросов.Выполнение команды SQL через SQL Management Studio работает нормально.

Это то, что я пытаюсь;

from sqlalchemy import create_engine
from sqlalchemy.sql import text
dbstring = "mssql+pyodbc://<SNIPPED>"
engine = create_engine(dbstring)
con = engine.connect()
res = con.execute(text("""INSERT INTO test(v) OUTPUT INSERTED.id VALUES( :v )"""), {"v": 10})

print(res) # This prints <sqlalchemy.engine.result.ResultProxy object>
print(res.first()) # This is the line where things go wrong

Последняя строка кода вызывает следующую ошибку:

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('HY010', '[HY010] [Microsoft][SQL Server Native Client 11.0]Function sequence error (0) (SQLFetch)')

Есть идеи, что я делаю неправильно?

Спасибо, Андрей

...