Trait odbc_api::Cursor [−][src]
Cursors are used to process and iterate the result sets returned by executing queries.
Required methods
fn describe_col(
&self,
column_number: u16,
column_description: &mut ColumnDescription
) -> Result<(), Error>
[src]
&self,
column_number: u16,
column_description: &mut ColumnDescription
) -> Result<(), Error>
Fetch a column description using the column index.
Parameters
column_number
: Column index.0
is the bookmark column. The other column indices start with1
.column_description
: Holds the description of the column after the call. This method does not provide strong exception safety as the value of this argument is undefined in case of an error.
fn num_result_cols(&self) -> Result<i16, Error>
[src]
Number of columns in result set.
unsafe fn fetch(&mut self) -> Result<bool, Error>
[src]
Returns the next set of rows in the result set.
If any columns are bound, it returns the data in those columns. If the application has
specified a pointer to a row status array or a buffer in which to return the number of rows
fetched, fetch
also returns this information. Calls to fetch
can be mixed with calls to
fetch_scroll
.
Safety
Fetch dereferences bound buffers and is therefore unsafe.
fn unbind_cols(&mut self) -> Result<(), Error>
[src]
Release all column buffers bound by bind_col
. Except bookmark column.
unsafe fn bind_col(
&mut self,
column_number: u16,
target: &mut impl CDataMut
) -> Result<(), Error>
[src]
&mut self,
column_number: u16,
target: &mut impl CDataMut
) -> Result<(), Error>
Binds application data buffers to columns in the result set
column_number
:0
is the bookmark column. It is not included in some result sets. All other columns are numbered starting with1
. It is an error to bind a higher-numbered column than there are columns in the result set. This error cannot be detected until the result set has been created, so it is returned byfetch
, notbind_col
.target_type
: The identifier of the C data type of thevalue
buffer. When it is retrieving data from the data source withfetch
, the driver converts the data to this type. When it sends data to the source, the driver converts the data from this type.target_value
: Pointer to the data buffer to bind to the column.target_length
: Length of target value in bytes. (Or for a single element in case of bulk aka. block fetching data).indicator
: Buffer is going to hold length or indicator values.
Safety
It is the callers responsibility to make sure the bound columns live until they are no longer bound.
fn is_unsigned_column(&self, column_number: u16) -> Result<bool, Error>
[src]
true
if a given column in a result set is unsigned or not a numeric type, false
otherwise.
column_number
: Index of the column, starting at 1.
fn bind_buffer<B>(
self,
row_set_buffer: B
) -> Result<RowSetCursor<Self, B>, Error> where
B: RowSetBuffer,
[src]
self,
row_set_buffer: B
) -> Result<RowSetCursor<Self, B>, Error> where
B: RowSetBuffer,
Binds this cursor to a buffer holding a row set.
fn col_data_type(&self, column_number: u16) -> Result<DataType, Error>
[src]
Data type of the specified column.
column_number
: Index of the column, starting at 1.
fn col_octet_length(&self, column_number: u16) -> Result<isize, Error>
[src]
Returns the size in bytes of the columns. For variable sized types the maximum size is returned, excluding a terminating zero.
column_number
: Index of the column, starting at 1.
fn col_display_size(&self, column_number: u16) -> Result<isize, Error>
[src]
Maximum number of characters required to display data from the column.
column_number
: Index of the column, starting at 1.
fn col_precision(&self, column_number: u16) -> Result<isize, Error>
[src]
Precision of the column.
Denotes the applicable precision. For data types SQL_TYPE_TIME, SQL_TYPE_TIMESTAMP, and all the interval data types that represent a time interval, its value is the applicable precision of the fractional seconds component.
fn col_scale(&self, column_number: u16) -> Result<isize, Error>
[src]
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.
fn col_name(&self, column_number: u16, buf: &mut Vec<u16>) -> Result<(), Error>
[src]
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.
Provided methods
fn column_names(&self) -> Result<ColumnNamesIt<'_, Self>, Error>
[src]
Use this if you want to iterate over all column names and allocate a String
for each one.
This is a wrapper around col_name
introduced for convenience.
Implementors
impl<'o, S> Cursor for CursorImpl<'o, S> where
S: BorrowMut<Statement<'o>>,
[src]
S: BorrowMut<Statement<'o>>,
fn describe_col(
&self,
column_number: u16,
column_description: &mut ColumnDescription
) -> Result<(), Error>
[src]
&self,
column_number: u16,
column_description: &mut ColumnDescription
) -> Result<(), Error>
fn num_result_cols(&self) -> Result<i16, Error>
[src]
unsafe fn fetch(&mut self) -> Result<bool, Error>
[src]
fn unbind_cols(&mut self) -> Result<(), Error>
[src]
unsafe fn bind_col(
&mut self,
column_number: u16,
target: &mut impl CDataMut
) -> Result<(), Error>
[src]
&mut self,
column_number: u16,
target: &mut impl CDataMut
) -> Result<(), Error>
fn is_unsigned_column(&self, column_number: u16) -> Result<bool, Error>
[src]
fn bind_buffer<B>(
mut self: Self,
mut row_set_buffer: B
) -> Result<RowSetCursor<Self, B>, Error> where
B: RowSetBuffer,
[src]
mut self: Self,
mut row_set_buffer: B
) -> Result<RowSetCursor<Self, B>, Error> where
B: RowSetBuffer,