Crate odbc_api

source ·
Expand description

§About

odbc-api enables you to write applications which utilize ODBC (Open Database Connectivity) standard to access databases. See the guide for more information and code examples.

Re-exports§

Modules§

  • This module contains buffers intended to be bound to ODBC statement handles.
  • 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 Strings or str slices to bind them always as narrow text independent of wether the narrow 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 using Preallocated::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§

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 the Cursor 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.
  • 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.