Spec-Zone .ru
спецификации, руководства, описания, API
|
The buffer_type
member of MYSQL_BIND
structures
indicates the data type of the C language variable bound to a statement parameter or result set column. For
input, buffer_type
indicates the type of the variable containing the value to be
sent to the server. For output, it indicates the type of the variable into which a value received from the
server should be stored.
The following table shows the permissible values for the buffer_type
member of
MYSQL_BIND
structures for input values sent to the server. The table shows the C
variable types that you can use, the corresponding type codes, and the SQL data types for which the supplied
value can be used without conversion. Choose the buffer_type
value according to the
data type of the C language variable that you are binding. For the integer types, you should also set the is_unsigned
member to indicate whether the variable is signed or unsigned.
Input Variable C Type | buffer_type Value |
SQL Type of Destination Value |
---|---|---|
signed char |
MYSQL_TYPE_TINY |
TINYINT |
short int |
MYSQL_TYPE_SHORT |
SMALLINT |
int |
MYSQL_TYPE_LONG |
INT |
long long int |
MYSQL_TYPE_LONGLONG |
BIGINT |
float |
MYSQL_TYPE_FLOAT |
FLOAT
|
double |
MYSQL_TYPE_DOUBLE |
DOUBLE
|
MYSQL_TIME |
MYSQL_TYPE_TIME |
TIME |
MYSQL_TIME |
MYSQL_TYPE_DATE |
DATE
|
MYSQL_TIME |
MYSQL_TYPE_DATETIME |
DATETIME
|
MYSQL_TIME |
MYSQL_TYPE_TIMESTAMP |
TIMESTAMP |
char[] |
MYSQL_TYPE_STRING |
TEXT , CHAR , VARCHAR |
char[] |
MYSQL_TYPE_BLOB |
BLOB , BINARY ,VARBINARY |
MYSQL_TYPE_NULL |
NULL |
Use MYSQL_TYPE_NULL
as indicated in the description for the is_null
member in Section 22.8.9, "C API Prepared Statement
Data Structures".
For input string data, use MYSQL_TYPE_STRING
or MYSQL_TYPE_BLOB
depending on whether the value is a character (nonbinary) or binary string:
MYSQL_TYPE_STRING
indicates character input string
data. The value is assumed to be in the character set indicated by the character_set_client
system variable. If the server stores the value
into a column with a different character set, it converts the value to that character set.
MYSQL_TYPE_BLOB
indicates binary input string data. The
value is treated as having the binary
character set. That is, it is treated
as a byte string and no conversion occurs.
The following table shows the permissible values for the buffer_type
member of
MYSQL_BIND
structures for output values received from the server. The table shows
the SQL types of received values, the corresponding type codes that such values have in result set metadata, and
the recommended C language data types to bind to the MYSQL_BIND
structure to
receive the SQL values without conversion. Choose the buffer_type
value according
to the data type of the C language variable that you are binding. For the integer types, you should also set the
is_unsigned
member to indicate whether the variable is signed or unsigned.
SQL Type of Received Value | buffer_type Value |
Output Variable C Type |
---|---|---|
TINYINT |
MYSQL_TYPE_TINY |
signed char |
SMALLINT |
MYSQL_TYPE_SHORT |
short int |
MEDIUMINT |
MYSQL_TYPE_INT24 |
int |
INT |
MYSQL_TYPE_LONG |
int |
BIGINT |
MYSQL_TYPE_LONGLONG |
long long int |
FLOAT |
MYSQL_TYPE_FLOAT |
float |
DOUBLE |
MYSQL_TYPE_DOUBLE |
double |
DECIMAL |
MYSQL_TYPE_NEWDECIMAL |
char[] |
YEAR |
MYSQL_TYPE_SHORT |
short int |
TIME |
MYSQL_TYPE_TIME |
MYSQL_TIME |
DATE |
MYSQL_TYPE_DATE |
MYSQL_TIME |
DATETIME
|
MYSQL_TYPE_DATETIME |
MYSQL_TIME |
TIMESTAMP
|
MYSQL_TYPE_TIMESTAMP |
MYSQL_TIME |
CHAR , BINARY |
MYSQL_TYPE_STRING |
char[] |
VARCHAR ,
VARBINARY |
MYSQL_TYPE_VAR_STRING |
char[] |
TINYBLOB , TINYTEXT |
MYSQL_TYPE_TINY_BLOB |
char[] |
BLOB , TEXT |
MYSQL_TYPE_BLOB |
char[] |
MEDIUMBLOB ,
MEDIUMTEXT |
MYSQL_TYPE_MEDIUM_BLOB |
char[] |
LONGBLOB ,LONGTEXT |
MYSQL_TYPE_LONG_BLOB |
char[] |
BIT |
MYSQL_TYPE_BIT |
char[] |