c = connection.cursor()
try:
c.execute("BEGIN")
c.callproc("fn_save_message3", (Message_Subject, Message_Content, Message_Type, Message_Category, Created_By, Updated_By))
results = c.fetchall()
c.execute("COMMIT")
finally:
c.close()
print results
Забравихте затварящите скоби и се опитвахте да извикате функциите на cursor
вместо c
и също имаше проблем с отстъпа. Трябва също да използвате callproc()
функционира, както е документирано тук.
Както каза catavaran, трябва да прочетете документацията за изпълнение на персонализиран SQL и да използвате контейнери. Освен това в Django 1.6+ транзакциите се извършват автоматично, така че няма нужда от c.execute("COMMIT")