1use crate::{Odbc, OdbcConnection};
2
3pub struct OdbcTransactionManager;
5
6impl sqlx_core::transaction::TransactionManager for OdbcTransactionManager {
7 type Database = Odbc;
8
9 async fn begin(
10 conn: &mut OdbcConnection,
11 _statement: Option<sqlx_core::sql_str::SqlStr>,
12 ) -> Result<(), sqlx_core::Error> {
13 conn.begin_blocking()
14 }
15
16 async fn commit(conn: &mut OdbcConnection) -> Result<(), sqlx_core::Error> {
17 conn.commit_blocking()
18 }
19
20 async fn rollback(conn: &mut OdbcConnection) -> Result<(), sqlx_core::Error> {
21 conn.rollback_blocking()
22 }
23
24 fn start_rollback(conn: &mut OdbcConnection) {
25 conn.start_rollback();
26 }
27
28 fn get_transaction_depth(conn: &OdbcConnection) -> usize {
29 conn.transaction_depth()
30 }
31}