Skip to main content

FirebirdClientSqlOps

Trait FirebirdClientSqlOps 

Source
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§

Source

type DbHandle: Send

A database handle

Source

type TrHandle: Send

A transaction handle

Source

type StmtHandle: Send

A statement handle

Required Methods§

Source

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

Source

fn transaction_operation( &mut self, tr_handle: &mut Self::TrHandle, op: TrOp, ) -> Result<(), FbError>

Commit / Rollback a transaction

Source

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

Source

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

Source

fn free_statement( &mut self, stmt_handle: &mut Self::StmtHandle, op: FreeStmtOp, ) -> Result<(), FbError>

Closes or drops a statement

Source

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

Source

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

Source

fn fetch( &mut self, db_handle: &mut Self::DbHandle, tr_handle: &mut Self::TrHandle, stmt_handle: &mut Self::StmtHandle, ) -> Result<Option<Vec<Column>>, FbError>

Fetch rows from the executed statement, coercing the types according to the provided blr

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§