Я использую pypyodbc с SQL Server 2016.
Я пытаюсь вставить и получить последний идентификатор, вставленный в базу данных, после примечания другого пользователя, но возвращаемое значение кажется зашифрованным. Есть ли способ его расшифровать?
def executeSQL (command):
connection = pypyodbc.connect('Driver={SQL Native Client};'
'Server=blah\blah;'
'Database=Impact;'
'uid=Admin;pwd=F$sfgdfgs99')
cursor=connection.cursor()
cursor.execute(command)
id = cursor.execute("SELECT @@IDENTITY")
connection.commit()
connection.close()
return id
sqlexecute = 'INSERT INTO PERSONS([LastName], [FirstName]) VALUES(\''+lastname.encode('utf-8')+'\',\''+firstname.encode('utf-8')+'\');\n'
lastid = executeSQL(sqlexecute)
print lastid
Выход:
<pypyodbc.Cursor instance at 0x000000000B870C88>
@@IDENTITY
- на самом деле используйтеSCOPE_INDENTITY
для большей точности области видимости. Попробуйте:id = cursor.execute("SELECT SCOPE_IDENTITY() AS id")
Подробнее о том, почему вы хотите это сделать: blog.sqlauthority.com/2007/03/25/ Я также рекомендую использовать связанные параметры для вашегоINSERT
: stackoverflow.com/questions/32748982/< /а> - person FlipperPA   schedule 17.05.2017