Struct odbc_api::CursorImpl
source · pub struct CursorImpl<Stmt: AsStatementRef> { /* private fields */ }
Expand description
Cursors are used to process and iterate the result sets returned by executing queries. Created
by either a prepared query or direct execution. Usually utilized through the crate::Cursor
trait.
Implementations§
source§impl<S> CursorImpl<S>where
S: AsStatementRef,
impl<S> CursorImpl<S>where S: AsStatementRef,
sourcepub unsafe fn new(statement: S) -> Self
pub unsafe fn new(statement: S) -> Self
Users of this library are encouraged not to call this constructor directly but rather invoke
crate::Connection::execute
or crate::Prepared::execute
to get a cursor and utilize
it using the crate::Cursor
trait. This method is pubilc so users with an understanding
of the raw ODBC C-API have a way to create a cursor, after they left the safety rails of the
Rust type System, in order to implement a use case not covered yet, by the safe abstractions
within this crate.
Safety
statement
must be in Cursor state, for the invariants of this type to hold.
Trait Implementations§
source§impl<S> AsStatementRef for CursorImpl<S>where
S: AsStatementRef,
impl<S> AsStatementRef for CursorImpl<S>where S: AsStatementRef,
source§fn as_stmt_ref(&mut self) -> StatementRef<'_>
fn as_stmt_ref(&mut self) -> StatementRef<'_>
Get an exclusive reference to the underlying statement handle. This method is used to
implement other more higher level methods on top of it. It is not intended to be called by
users of this crate directly, yet it may serve as an escape hatch for low level usecases.
source§impl<S> Cursor for CursorImpl<S>where
S: AsStatementRef,
impl<S> Cursor for CursorImpl<S>where S: AsStatementRef,
source§fn bind_buffer<B>(
self,
row_set_buffer: B
) -> Result<BlockCursor<Self, B>, Error>where
B: RowSetBuffer,
fn bind_buffer<B>( self, row_set_buffer: B ) -> Result<BlockCursor<Self, B>, Error>where B: RowSetBuffer,
Binds this cursor to a buffer holding a row set.
source§fn more_results(self) -> Result<Option<Self>, Error>where
Self: Sized,
fn more_results(self) -> Result<Option<Self>, Error>where Self: Sized,
For some datasources it is possible to create more than one result set at once via a call to
execute. E.g. by calling a stored procedure or executing multiple SQL statements at once.
This method consumes the current cursor and creates a new one representing the next result
set should it exist.
source§impl<S> Drop for CursorImpl<S>where
S: AsStatementRef,
impl<S> Drop for CursorImpl<S>where S: AsStatementRef,
source§impl<S> ResultSetMetadata for CursorImpl<S>where
S: AsStatementRef,
impl<S> ResultSetMetadata for CursorImpl<S>where S: AsStatementRef,
source§fn describe_col(
&mut self,
column_number: u16,
column_description: &mut ColumnDescription
) -> Result<(), Error>
fn describe_col( &mut self, column_number: u16, column_description: &mut ColumnDescription ) -> Result<(), Error>
Fetch a column description using the column index. Read more
source§fn num_result_cols(&mut self) -> Result<i16, Error>
fn num_result_cols(&mut self) -> Result<i16, Error>
Number of columns in result set. Can also be used to see wether executing a prepared
Statement (
crate::Prepared
) would yield a result set, as this would return 0
if it
does not. Read moresource§fn column_is_unsigned(&mut self, column_number: u16) -> Result<bool, Error>
fn column_is_unsigned(&mut self, column_number: u16) -> Result<bool, Error>
true
if a given column in a result set is unsigned or not a numeric type, false
otherwise. Read moresource§fn col_octet_length(&mut self, column_number: u16) -> Result<isize, Error>
fn col_octet_length(&mut self, column_number: u16) -> Result<isize, Error>
Returns the size in bytes of the columns. For variable sized types the maximum size is
returned, excluding a terminating zero. Read more
source§fn col_display_size(&mut self, column_number: u16) -> Result<isize, Error>
fn col_display_size(&mut self, column_number: u16) -> Result<isize, Error>
Maximum number of characters required to display data from the column. Read more
source§fn col_precision(&mut self, column_number: u16) -> Result<isize, Error>
fn col_precision(&mut self, column_number: u16) -> Result<isize, Error>
Precision of the column. Read more
source§fn col_scale(&mut self, column_number: u16) -> Result<isize, Error>
fn col_scale(&mut self, column_number: u16) -> Result<isize, Error>
The applicable scale for a numeric data type. For DECIMAL and NUMERIC data types, this is
the defined scale. It is undefined for all other data types.
source§fn col_name(&mut self, column_number: u16) -> Result<String, Error>
fn col_name(&mut self, column_number: u16) -> Result<String, Error>
The column alias, if it applies. If the column alias does not apply, the column name is
returned. If there is no column name or a column alias, an empty string is returned.