Skip to main content

Database

Trait Database 

Source
pub trait Database {
    // Required methods
    fn execute(&mut self, call: &Call<'_>) -> Answer;
    fn prepare(&mut self, call: &Call<'_>) -> Answer;
    fn open(&mut self, call: &Call<'_>) -> Answer;
    fn fetch(&mut self, call: &Call<'_>) -> Answer;
    fn fetch_rows(&mut self, call: &Call<'_>, rows: u32) -> Answer;
    fn insert_rows(
        &mut self,
        call: &Call<'_>,
        rows: &[Vec<Value>],
        atomic: bool,
    ) -> Answer;
    fn close(&mut self, call: &Call<'_>) -> Answer;
    fn commit(&mut self, call: &Call<'_>) -> Answer;
    fn rollback(&mut self, call: &Call<'_>) -> Answer;

    // Provided methods
    fn call(&mut self, call: &Call<'_>) -> Answer { ... }
    fn close_all(&mut self) -> Result<(), Abandoned> { ... }
}

Required Methods§

Source

fn execute(&mut self, call: &Call<'_>) -> Answer

SELECT INTO, SET, VALUES INTO, INSERT, UPDATE and DELETE, and a dynamic statement that is not a query.

Source

fn prepare(&mut self, call: &Call<'_>) -> Answer

Checks a statement string PREPARE names, which then runs through execute or open.

Source

fn open(&mut self, call: &Call<'_>) -> Answer

Source

fn fetch(&mut self, call: &Call<'_>) -> Answer

One row, or no row at the end.

Source

fn fetch_rows(&mut self, call: &Call<'_>, rows: u32) -> Answer

Up to rows rows for a rowset FETCH, fewer at the end.

Source

fn insert_rows( &mut self, call: &Call<'_>, rows: &[Vec<Value>], atomic: bool, ) -> Answer

A multiple-row INSERT: the INSERT of one row call names, once for each of rows, whose values call.inputs holds one after another. SQLERRD(3) is the rows inserted. ATOMIC undoes them all when one fails; NOT ATOMIC keeps the rest, -253, or -254 when none went in.

Source

fn close(&mut self, call: &Call<'_>) -> Answer

Source

fn commit(&mut self, call: &Call<'_>) -> Answer

Source

fn rollback(&mut self, call: &Call<'_>) -> Answer

Provided Methods§

Source

fn call(&mut self, call: &Call<'_>) -> Answer

CALL of a stored procedure, which a backend that runs none refuses; the answer’s parameters give the arguments as the procedure returns them (numeric::assumptions::CALL_FROM_A_RECORDING).

Source

fn close_all(&mut self) -> Result<(), Abandoned>

Closes every cursor, held ones too, as the end of a CICS task does, so the next task on the same connection finds none open. A backend without cursors of its own has nothing to close.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§