Cómo hacer una copia de seguridad de una base de datos por pyodbc

La declaración de copia de seguridad no se puede utilizar en una transacción cuando se ejecuta con el cursor pyodbc. Parece que el pyodbc ejecuta la consulta dentro de una transacción por defecto. También he intentado usar el modo de confirmación automática o agregar la declaración de confirmación antes de la declaración de copia de seguridad. Ambos de estos no están funcionando.

#can't execute the backup statement in transaction
cur.execute("backup database database_name to disk = 'backup_path'")
#not working too
cur.execute("commit;backup database database_name to disk = 'backup_path'")

¿Es posible ejecutar la declaración de copia de seguridad por pyodbc? ¡Gracias por adelantado!

----- Se agregó información adicional ------------------------------------------ -----------------------------

La operación de copia de seguridad se encapsula en una función como:

def backupdb(con, name, save_path):
    # with autocommit mode, should be pyodbc.connect(con, autocommit=True)
    con = pyodbc.connect(con) 
    query = "backup database %s to disk = '%s'" % (name, save_path)
    cur = con.cursor()
    cur.execute(query)
    cur.commit()
    con.close()

Si la función es llamada por el siguiente código,

backupdb('DRIVER={SQL Server};SERVER=.\sqlexpress;DATABASE=master;Trusted_Connection=yes',
             'DatabaseName',
             'd:\\DatabaseName.bak')

entonces la excepción será:

File "C:/Documents and Settings/Administrator/Desktop/bakdb.py", line 14, in <module>'d:\\DatabaseName.bak')
File "C:/Documents and Settings/Administrator/Desktop/bakdb.py", line 7, in backupdb cur.execute(query)
ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot perform a backup or restore operation within a transaction. (3021) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE is terminating abnormally. (3013)')

Con abrir la palabra clave autocommit = True, la función se ejecutará de forma silenciosa pero no se generará un archivo de copia de seguridad en la carpeta de copia de seguridad.

Respuestas a la pregunta(1)

Su respuesta a la pregunta