Crate hdbconnect

Source
Expand description

Synchronous native rust database driver for SAP HANA (TM).

hdbconnect provides a lean, fast, and easy-to-use rust-API for working with SAP HANA. The driver is written completely in rust. It interoperates elegantly with all data types that implement the standard serde::Serialize and/or serde::Deserialize traits, for input and output respectively. So, instead of iterating over a result set by rows and columns, you can assign the complete result set directly to any rust structure that fits the data semantics.

hdbconnect implements this with the help of serde_db, a reusable library for simplifying the data exchange between application code and database drivers, both for input parameters (e.g. to prepared statements) and for results that are returned from the database.

In contrast to typical ORM mapping variants, this approach allows using the full flexibility of SQL (projection lists, all kinds of joins, unions, nested queries, etc). Whatever query you need, you just use it, without further ado for defining object models etc., and whatever result structure you want to read, you just use a corresponding rust structure into which you deserialize the data. It’s hard to use less code!

See code examples for an overview.

Modules§

code_examples
Code examples.
time
Support for serializing from or deserializing into types of the time crate.
types
Non-standard types that are used to represent database values.
url
Constants for use in connection URLs.

Structs§

ConnectParams
An immutable struct with all information necessary to open a new connection to a HANA database.
ConnectParamsBuilder
A builder for ConnectParams.
Connection
A synchronous connection to the database.
ConnectionConfiguration
A collection of settings that influence the runtime behavior of a connection.
ConnectionManagerr2d2_pool
Implementation of r2d2’s ManageConnection.
ConnectionStatistics
Provides some statistics about the use of a concrete connection.
FieldMetadata
Metadata of a field in a ResultSet.
HdbResponse
Represents all possible non-error responses to a database command.
OutputParameters
A set of output parameters, as they can be returned by procedure calls.
ParameterDescriptor
Metadata for a parameter.
ParameterDescriptors
Describes a set of IN, INOUT, and OUT parameters. Can be empty.
PreparedStatement
Allows injection-safe SQL execution and repeated calls of the same statement with different parameters with as few roundtrips as possible.
ResultSet
The result of a database query.
ResultSetMetadata
List of metadata of the fields of a resultset.
Row
A single line of a ResultSet, consisting of the contained HdbValues and a reference to the metadata.
ServerError
Describes an error that is reported from the database.
ServerUsage
Describes the server-side resource consumption.

Enums§

CursorHoldability
Holdability of cursors in the database.
DeserializationError
The errors that can arise while deserializing with serde_db::de.
ExecutionResult
Describes the success of a command.
HdbError
A list specifying categories of HdbError.
HdbReturnValue
An enum that describes a single database return value.
HdbValue
Enum for all supported database value types.
ParameterBinding
Describes whether a parameter is Nullable or not or if it has a default value.
ParameterDirection
Describes whether a parameter is used for input, output, or both.
SerializationError
Error that can occur while serializing a standard rust type or struct into a SQL parameter.
ServerCerts
Expresses where Certificates for TLS are read from.
Severity
Severity of a server message
TypeId
ID of the value type of a database column or a parameter.

Traits§

IntoConnectParams
A trait implemented by types that can be converted into a ConnectParams.
IntoConnectParamsBuilder
A trait implemented by types that can be converted into a ConnectParamsBuilder.
ToHana
Helper trait for serialization.

Type Aliases§

HdbResult
Abbreviation of Result<T, HdbError>.