Expand description
Re-exports§
pub use self::handles::ColumnDescription;
pub use self::handles::DataType;
pub use self::handles::Nullability;
pub use self::parameter::InOut;
pub use self::parameter::Out;
pub use self::parameter::OutputParameter;
pub use odbc_sys as sys;
Modules§
- Using buffers to fetch results
- Introduction to
odbc-api
(documentation only) - Provides basic abstraction over valid (i.e. allocated ODBC handles).
- Passing parameters to statement
Structs§
- New type wrapping u8 and binding as SQL_BIT.
- In order to save on network overhead, it is recommended to use block cursors instead of fetching values individually. This can greatly reduce the time applications need to fetch data. You can create a block cursor by binding preallocated memory to a cursor using
Cursor::bind_buffer
. A block cursor saves on a lot of IO overhead by fetching an entire set of rows (called rowset) at once into the buffer bound to it. Reusing the same buffer for each rowset also saves on allocations. A challange with using block cursors might be database schemas with columns there individual fields can be very large. In these cases developers can choose to: - Asynchronously iterates in blocks (called row sets) over a result set, filling a buffers with a lot of rows at once, instead of iterating the result set row by row. This is usually much faster. Asynchronous sibiling of
self::BlockCursor
. - Can be used to execute a statement with bulk array paramters. Contrary to its name any statement with parameters can be executed, not only
INSERT
however inserting large amounts of data in batches is the primary intended use case. - A wrapper around block cursors which fetches data in a dedicated system thread. Intended to fetch data batch by batch while the application processes the batch last fetched. Works best with a double buffer strategy using two fetch buffers.
- The connection handle references storage of all information about the connection to the data source, including status, transaction state, and error information.
- Options to be passed then opening a connection to a datasource.
- 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. - The asynchronous sibiling of
CursorImpl
. Use this to fetch results in asynchronous code. - An individual row of an result set. See
crate::Cursor::next_row
. - Holds name and description of a datasource
- Struct holding information available on a driver. Can be obtained via
Environment::drivers
. - An ODBC 3.8 environment.
- Newtype wrapper intend to be used around
String
s orstr
slices to bind them always as narrow text independent of wether thenarrow
feature is set or not. - Wraps a type T together with an additional indicator. This way the type gains a Null representation, those memory layout is compatible with ODBC.
- A preallocated SQL statement handle intended for sequential execution of different queries. See
crate::Connection::preallocate
. - Asynchronous sibling of
Preallocated
using polling mode for execution. Can be obtained usingPreallocated::into_polling
. - A prepared query. Prepared queries are useful if the similar queries should executed more than once. See
crate::Connection::prepare
. - Statement handle which also takes ownership of Connection
- Error indicating a failed allocation for a column buffer
- Returned by
RowSetBuffer::find_truncation
. Contains information about the truncation found. - 16-bit wide string slice with undefined encoding.
- An owned, mutable 16-bit wide string with undefined encoding.
Enums§
- Specifies how the driver and driver manager complete the incoming connection string. See
crate::Environment::driver_connect
. - Error type used to indicate a low level ODBC call returned with SQL_ERROR.
Traits§
- You can obtain a mutable slice of a column buffer which allows you to change its contents.
- Cursors are used to process and iterate the result sets returned by executing queries.
- An instance can be consumed and to create a parameter which can be bound to a statement during execution.
- Implementers of this trait can be bound to a statement through a
self::ParameterCollectionRef
. - SQL Parameters used to execute a query.
- Implementers of this trait can be used as individual parameters of in a tuple of parameter references. This includes input parameters, output or in/out parameters.
- Provides Metadata of the resulting the result set. Implemented by
Cursor
types and prepared queries. Fetching metadata from a prepared query might be expensive (driver dependent), so your application should fetch the Metadata it requires from theCursor
if possible. - A Row set buffer binds row, or column wise buffers to a cursor in order to fill them with row sets with each call to fetch.
- Governs the behaviour of of polling in async functions.
Functions§
- Convert the text representation of a decimal into an integer representation. The integer representation is not truncating the fraction, but is instead the value of the decimal times 10 to the power of scale. E.g. 123.45 of a Decimal with scale 3 is thought of as 123.450 and represented as 123450. This method will regard any non digit character as a radix character with the exception of a
+
or-
at the beginning of the string. - An ODBC
Environment
with static lifetime. This function always returns a reference to the same instance. The environment is constructed then the function is called for the first time. Every time after the initial construction this function must succeed. - You can use this method to escape a password so it is suitable to be appended to an ODBC connection string as the value for the
PWD
attribute. This method is only of interest for application in need to create their own connection strings.