Enum odbc_api::DataType [−][src]
pub enum DataType {
Show variants
Unknown,
Char {
length: usize,
},
WChar {
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
The type is not known.
Char(n). Character string of fixed length.
Show fields
Fields of Char
length: usizeColumn size in characters (excluding terminating zero).
NChar(n). Character string of fixed length.
Show fields
Fields of WChar
length: usizeColumn size in characters (excluding terminating zero).
`Numeric(p,s). Signed, exact, numeric value with a precision p and scale s (1 <= p <= 15; s <= p)
Show fields
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)
Show fields
Integer. 32 Bit Integer
Smallint. 16 Bit Integer
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. Signed, approximate, numeric value with a binary precision 24 (zero or absolute
value 10^-38] to 10^38).
Double Precision. Signed, approximate, numeric value with a binary precision 53 (zero or
absolute value 10^-308 to 10^308).
Varchar(n). Variable length character string.
Show fields
Fields of Varchar
length: usizeMaximum length of the character string (excluding terminating zero).
NVARCHAR(n). Variable length character string. Indicates the use of wide character strings
and use of UCS2 encoding on the side of the database.
Show fields
Fields of WVarchar
length: usizeMaximum length of the character string (excluding terminating zero).
Date. Year, month, and day fields, conforming to the rules of the Gregorian calendar.
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.
Show fields
Fields of Time
precision: i16Number of radix ten digits used to represent the timestamp after the decimal points. E.g. Milliseconds would be represented by precision 3, Microseconds by 6 and Nanoseconds by 9.
Timestamp. Year, month, day, hour, minute, and second fields, with valid values as
defined for the Date and Time variants.
Show fields
Fields of Timestamp
precision: i16Number of radix ten digits used to represent the timestamp after the decimal points. E.g. Milliseconds would be represented by precision 3, Microseconds by 6 and Nanoseconds by 9.
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. Exact numeric value with precision 3 and scale 0 (signed: -128 <= n <= 127,
unsigned: 0 <= n <= 255)
BIT. Single bit binary data.
VARBINARY(n). Type for variable sized binary data.
Show fields
Fields of Varbinary
length: usizeBINARY(n). Type for fixed sized binary data.
Show fields
Fields of Binary
length: usizeThe 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.
Show fields
Fields of Other
data_type: SqlDataTypeType of the column
column_size: usizeSize of column element
decimal_digits: i16Decimal digits returned for the column element. Exact meaning if any depends on the
data_type field.
Implementations
impl DataType[src]
impl DataType[src]pub fn new(
data_type: SqlDataType,
column_size: usize,
decimal_digits: i16
) -> Self[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]
pub fn data_type(&self) -> SqlDataType[src]The associated data_type discriminator for this variant.
pub fn column_size(&self) -> usize[src]
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]
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]
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]
pub fn utf8_len(&self) -> Option<usize>[src]The maximum length of the UTF-8 representation in bytes.
use odbc_api::DataType; // Character set data types length is multiplied by four. assert_eq!(DataType::Varchar { length: 10 }.utf8_len(), Some(40)); assert_eq!(DataType::Char { length: 10 }.utf8_len(), Some(40)); assert_eq!(DataType::WVarchar { length: 10 }.utf8_len(), Some(40)); assert_eq!(DataType::WChar { length: 10 }.utf8_len(), Some(40)); // For other types return value is identical to display size as they are assumed to be // entirely representable with ASCII characters. assert_eq!(DataType::Numeric { precision: 10, scale: 3}.utf8_len(), Some(10 + 2));
pub fn utf16_len(&self) -> Option<usize>[src]
pub fn utf16_len(&self) -> Option<usize>[src]The maximum length of the UTF-16 representation in 2-Byte characters.
use odbc_api::DataType; // Character set data types length is multiplied by two. assert_eq!(DataType::Varchar { length: 10 }.utf16_len(), Some(20)); assert_eq!(DataType::Char { length: 10 }.utf16_len(), Some(20)); assert_eq!(DataType::WVarchar { length: 10 }.utf16_len(), Some(20)); assert_eq!(DataType::WChar { length: 10 }.utf16_len(), Some(20)); // For other types return value is identical to display size as they are assumed to be // entirely representable with ASCII characters. assert_eq!(DataType::Numeric { precision: 10, scale: 3}.utf16_len(), Some(10 + 2));
Trait Implementations
impl Copy for DataType[src]
impl Eq for DataType[src]
impl StructuralEq for DataType[src]
impl StructuralPartialEq for DataType[src]
Auto Trait Implementations
impl RefUnwindSafe for DataType
impl Send for DataType
impl Sync for DataType
impl Unpin for DataType
impl UnwindSafe for DataType
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more