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 public 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 use cases.
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 whether 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<Option<NonZeroUsize>, Error>
fn col_octet_length( &mut self, column_number: u16, ) -> Result<Option<NonZeroUsize>, Error>
Size in bytes of the columns. For variable sized types this is the maximum size, excluding a
terminating zero. Read more
Source§fn col_display_size(
&mut self,
column_number: u16,
) -> Result<Option<NonZeroUsize>, Error>
fn col_display_size( &mut self, column_number: u16, ) -> Result<Option<NonZeroUsize>, Error>
Maximum number of characters required to display data from the column. If the driver is
unable to provide a maximum
None
is returned. Read moreSource§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.
Auto Trait Implementations§
impl<Stmt> Freeze for CursorImpl<Stmt>where
Stmt: Freeze,
impl<Stmt> RefUnwindSafe for CursorImpl<Stmt>where
Stmt: RefUnwindSafe,
impl<Stmt> Send for CursorImpl<Stmt>where
Stmt: Send,
impl<Stmt> Sync for CursorImpl<Stmt>where
Stmt: Sync,
impl<Stmt> Unpin for CursorImpl<Stmt>where
Stmt: Unpin,
impl<Stmt> UnwindSafe for CursorImpl<Stmt>where
Stmt: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more