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.