Two-byte integers
The DataBlade®
API supports
the following data types for two-byte integer values.
DataBlade® API two-byte integers | Description |
---|---|
mi_smallint | Signed two-byte integer value |
mi_unsigned_smallint | Unsigned two-byte integer value |
Use these integer data types to hold values for the SQL SMALLINT data type, which stores two-byte integer numbers that range from -32,767 - 32,767.
The mi_smallint and mi_unsigned_smallint data types
hold the internal (binary) format of a SMALLINT value. The DataBlade®
API ensures
that the mi_smallint and mi_unsigned_smallint data types
are two bytes on all computer architectures. Use these integer data
types instead of the native C types (such as short int). If
you access two-byte values stored in a SMALLINT in the database, but
use the C short int type, conversion errors might arise if
the two types are not the same size.
Important: To make
your DataBlade®
API module
portable across different architectures, it is recommended that you
use the DataBlade®
API data
type mi_smallint for two-byte integer values instead of the
native C-language counterpart. The mi_smallint data type handles
the different sizes of integer values across computer architectures.
Values of the mi_smallint and mi_unsigned_smallint data types can fit into an MI_DATUM structure. They can be passed by value within C UDRs.
All data types, including mi_smallint and mi_unsigned_smallint, must be passed by reference within client LIBMI applications.
To transfer two-byte integers between different computer architectures,
the DataBlade®
API provides
the following functions that handle type alignment and byte order.
- mi_get_smallint()
- Copies an aligned two-byte integer, converting any difference in alignment or byte order on the client computer to that of the server computer
- mi_put_smallint()
- Copies an aligned two-byte integer, converting any difference in alignment or byte order on the server computer to that of the client computer
- mi_fix_smallint()
- Converts the specified two-byte integer to or from the type alignment and byte order of the client computer
These DataBlade® API functions are useful in the send and receive support functions of an opaque data type that contains mi_smallint values. They ensure that two-byte integer (SMALLINT) values remain consistent when transferred to and from client applications.