Từ tài liệu pyodbc
Để gọi một thủ tục được lưu trữ ngay bây giờ, hãy chuyển lệnh gọi tới phương thức thực thi bằng cách sử dụng định dạng mà cơ sở dữ liệu của bạn nhận ra hoặc sử dụng định dạng thoát lệnh gọi ODBC. (Trình điều khiển ODBC sau đó sẽ định dạng lại lệnh gọi cho bạn để khớp với cơ sở dữ liệu đã cho.)
Đối với SQL Server, bạn sẽ sử dụng một cái gì đó như sau:
# SQL Server format
cursor.execute("exec sp_dosomething(123, 'abc')")
# ODBC format
cursor.execute("{call sp_dosomething(123, 'abc')}")
Vì vậy, để gọi thủ tục của bạn
id_ = 'test'
pw = '12345'
depart = 'none'
class_ = 'GM'
name = 'name'
birthday = 'None'
grade = 3
subgrade = 2
sql = 'exec [my_database].[dbo].[my_table](?, ?, ?, ?, ?, ?, ?, ?)'
values = (id_, pw, depart, class_, name, birthday, grade, subgrade)
cursor.execute(sql, (values))