pub trait FirebirdClientSqlOps {
type DbHandle: Send;
type TrHandle: Send;
type StmtHandle: Send;
// Required methods
fn begin_transaction(
&mut self,
db_handle: &mut Self::DbHandle,
confs: TransactionConfiguration
) -> Result<Self::TrHandle, FbError>;
fn transaction_operation(
&mut self,
tr_handle: &mut Self::TrHandle,
op: TrOp
) -> Result<(), FbError>;
fn exec_immediate(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
dialect: Dialect,
sql: &str
) -> Result<(), FbError>;
fn prepare_statement(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
dialect: Dialect,
sql: &str
) -> Result<(StmtType, Self::StmtHandle), FbError>;
fn free_statement(
&mut self,
stmt_handle: &mut Self::StmtHandle,
op: FreeStmtOp
) -> Result<(), FbError>;
fn execute(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
stmt_handle: &mut Self::StmtHandle,
params: Vec<SqlType>
) -> Result<usize, FbError>;
fn execute2(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
stmt_handle: &mut Self::StmtHandle,
params: Vec<SqlType>
) -> Result<Vec<Column>, FbError>;
fn fetch(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
stmt_handle: &mut Self::StmtHandle
) -> Result<Option<Vec<Column>>, FbError>;
}
Expand description
Responsible for actual transaction and statement execution
Required Associated Types§
sourcetype StmtHandle: Send
type StmtHandle: Send
A statement handle
Required Methods§
sourcefn begin_transaction(
&mut self,
db_handle: &mut Self::DbHandle,
confs: TransactionConfiguration
) -> Result<Self::TrHandle, FbError>
fn begin_transaction( &mut self, db_handle: &mut Self::DbHandle, confs: TransactionConfiguration ) -> Result<Self::TrHandle, FbError>
Start a new transaction, with the specified transaction parameter buffer
sourcefn transaction_operation(
&mut self,
tr_handle: &mut Self::TrHandle,
op: TrOp
) -> Result<(), FbError>
fn transaction_operation( &mut self, tr_handle: &mut Self::TrHandle, op: TrOp ) -> Result<(), FbError>
Commit / Rollback a transaction
sourcefn exec_immediate(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
dialect: Dialect,
sql: &str
) -> Result<(), FbError>
fn exec_immediate( &mut self, db_handle: &mut Self::DbHandle, tr_handle: &mut Self::TrHandle, dialect: Dialect, sql: &str ) -> Result<(), FbError>
Execute a sql immediately, without returning rows
sourcefn prepare_statement(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
dialect: Dialect,
sql: &str
) -> Result<(StmtType, Self::StmtHandle), FbError>
fn prepare_statement( &mut self, db_handle: &mut Self::DbHandle, tr_handle: &mut Self::TrHandle, dialect: Dialect, sql: &str ) -> Result<(StmtType, Self::StmtHandle), FbError>
Allocate and prepare a statement Returns the statement type and handle
sourcefn free_statement(
&mut self,
stmt_handle: &mut Self::StmtHandle,
op: FreeStmtOp
) -> Result<(), FbError>
fn free_statement( &mut self, stmt_handle: &mut Self::StmtHandle, op: FreeStmtOp ) -> Result<(), FbError>
Closes or drops a statement
sourcefn execute(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
stmt_handle: &mut Self::StmtHandle,
params: Vec<SqlType>
) -> Result<usize, FbError>
fn execute( &mut self, db_handle: &mut Self::DbHandle, tr_handle: &mut Self::TrHandle, stmt_handle: &mut Self::StmtHandle, params: Vec<SqlType> ) -> Result<usize, FbError>
Execute the prepared statement with parameters and returns the affected rows count
sourcefn execute2(
&mut self,
db_handle: &mut Self::DbHandle,
tr_handle: &mut Self::TrHandle,
stmt_handle: &mut Self::StmtHandle,
params: Vec<SqlType>
) -> Result<Vec<Column>, FbError>
fn execute2( &mut self, db_handle: &mut Self::DbHandle, tr_handle: &mut Self::TrHandle, stmt_handle: &mut Self::StmtHandle, params: Vec<SqlType> ) -> Result<Vec<Column>, FbError>
Execute the prepared statement with input and output parameters.
The output parameters will be returned as in the Result