Enum odbc_api::DataType[][src]

pub enum DataType {
    Unknown,
    Char {
        length: usize,
    },
    Numeric {
        precision: usize,
        scale: i16,
    },
    Decimal {
        precision: usize,
        scale: i16,
    },
    Integer,
    SmallInt,
    Float,
    Real,
    Double,
    Varchar {
        length: usize,
    },
    WVarchar {
        length: usize,
    },
    Date,
    Time {
        precision: i16,
    },
    Timestamp {
        precision: i16,
    },
    BigInt,
    TinyInt,
    Bit,
    Varbinary {
        length: usize,
    },
    Binary {
        length: usize,
    },
    Other {
        data_type: SqlDataType,
        column_size: usize,
        decimal_digits: i16,
    },
}

Enumeration over valid SQL Data Types supported by ODBC

Variants

Unknown

The type is not known.

Char

Char(n). Character string of fixed length.

Fields of Char

length: usize

Column size in characters (excluding terminating zero).

Numeric

`Numeric(p,s). Signed, exact, numeric value with a precision p and scale s (1 <= p <= 15; s <= p)

Fields of Numeric

precision: usize

Total number of digits.

scale: i16

Number of decimal digits.

Decimal

Decimal(p,s). Signed, exact, numeric value with a precision of at least p and scale s. The maximum precision is driver-defined. (1 <= p <= 15; s <= p)

Fields of Decimal

precision: usize

Total number of digits.

scale: i16

Number of decimal digits.

Integer

Integer. 32 Bit Integer

SmallInt

Smallint. 16 Bit Integer

Float

Float(p). Signed, approximate, numeric value with a binary precision of at least p. The maximum precision is driver-defined.

Depending on the implementation binary precision is either 24 (f32) or 53 (f64).

Real

Real. Signed, approximate, numeric value with a binary precision 24 (zero or absolute value 10^-38] to 10^38).

Double

Double Precision. Signed, approximate, numeric value with a binary precision 53 (zero or absolute value 10^-308 to 10^308).

Varchar

Varchar(n). Variable length character string.

Fields of Varchar

length: usize

Maximum length of the character string (excluding terminating zero).

WVarchar

NVARCHAR(n). Variable length character string. Indicates the use of wide character strings and use of UCS2 encoding on the side of the database.

Fields of WVarchar

length: usize

Maximum length of the character string (excluding terminating zero).

Date

Date. Year, month, and day fields, conforming to the rules of the Gregorian calendar.

Time

Time. Hour, minute, and second fields, with valid values for hours of 00 to 23, valid values for minutes of 00 to 59, and valid values for seconds of 00 to 61. Precision p indicates the seconds precision.

Fields of Time

precision: i16

Number of radix ten digits used to represent the timestamp after the decimal points. E.g. Milliseconds would be represented by precision 3, Micorseconds by 6 and Nanoseconds by 9.

Timestamp

Timestamp. Year, month, day, hour, minute, and second fields, with valid values as defined for the Date and Time variants.

Fields of Timestamp

precision: i16

Number of radix ten digits used to represent the timestamp after the decimal points. E.g. Milliseconds would be represented by precision 3, Micorseconds by 6 and Nanoseconds by 9.

BigInt

BIGINT. Exact numeric value with precision 19 (if signed) or 20 (if unsigned) and scale 0 (signed: -2^63 <= n <= 2^63 - 1, unsigned: 0 <= n <= 2^64 - 1). Has no corresponding type in SQL-92.

TinyInt

TINYINT. Exact numeric value with precision 3 and scale 0 (signed: -128 <= n <= 127, unsigned: 0 <= n <= 255)

Bit

BIT. Single bit binary data.

Varbinary

VARBINARY(n). Type for variable sized binary data.

Fields of Varbinary

length: usize
Binary

BINARY(n). Type for fixed sized binary data.

Fields of Binary

length: usize
Other

The driver returned a type, but it is not among the other types of these enumeration. This is a catchall, in case the library is incomplete, or the data source supports custom or non-standard types.

Fields of Other

data_type: SqlDataType

Type of the column

column_size: usize

Size of column element

decimal_digits: i16

Decimal digits returned for the column element. Exact meaning if any depends on the data_type field.

Implementations

impl DataType[src]

pub fn new(
    data_type: SqlDataType,
    column_size: usize,
    decimal_digits: i16
) -> Self
[src]

This constructor is useful to create an instance of the enumeration using values returned by ODBC Api calls like SQLDescribeCol, rather than just initializing a variant directly.

pub fn data_type(&self) -> SqlDataType[src]

The associated data_type discriminator for this variant.

pub fn column_size(&self) -> usize[src]

Return the column size, as it is required to bind the data type as a parameter. This implies

pub fn decimal_digits(&self) -> i16[src]

Return the number of decimal digits as required to bind the data type as a parameter.

pub fn display_size(&self) -> Option<usize>[src]

The maximum number of characters needed to display data in character form.

See: https://docs.microsoft.com/en-us/sql/odbc/reference/appendixes/display-size

pub fn utf8_len(&self) -> Option<usize>[src]

The (maximum) length of the utf-8 representation in bytes.

Trait Implementations

impl Clone for DataType[src]

impl Copy for DataType[src]

impl Debug for DataType[src]

impl Default for DataType[src]

impl Eq for DataType[src]

impl PartialEq<DataType> for DataType[src]

impl StructuralEq for DataType[src]

impl StructuralPartialEq for DataType[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.