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
Du glemte de afsluttende parentser og prøvede at kalde funktionerne på cursor
i stedet for c
og havde også et problem med indrykning. Du bør også bruge callproc()
fungerer som dokumenteret her.
Som catavaran sagde, bør du læse dokumentationen om udførelse af tilpasset SQL og bruge pladsholdere. Også i Django 1.6+ bliver transaktionerne forpligtet automatisk, så der er ikke behov for c.execute("COMMIT")