27.7.8.1 C API 准备的语句类型代码

MYSQL_BIND结构的buffer_type成员指示绑定到语句参数或结果集列的 C 语言变量的数据类型。对于 Importing,buffer_typetable 示包含要发送到服务器的值的变量的类型。对于输出,它指示将从服务器接收的值存储到的变量类型。

下 table 显示了发送到服务器的 Importing 值的MYSQL_BIND结构的buffer_type成员的允许值。该 table 显示了可以使用的 C 变量类型,相应的类型代码以及可以在不进行转换的情况下使用提供的值的 SQL 数据类型。根据您要绑定的 C 语言变量的数据类型选择buffer_type值。对于整数类型,还应该设置is_unsigned成员以指示变量是带符号的还是无符号的。

Importing 变量 C 类型 buffer_type SQL 目标值的类型
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

如对第 27.7.8 节“ C API 准备的语句数据结构”中的is_null成员的说明所述,使用MYSQL_TYPE_NULL

对于 Importing 字符串数据,根据值是字符(非二进制)还是二进制字符串使用MYSQL_TYPE_STRINGMYSQL_TYPE_BLOB

下 table 显示了从服务器接收到的输出值的MYSQL_BIND结构的buffer_type成员的允许值。该 table 显示了接收到的值的 SQL 类型,这些值在结果集元数据中具有的对应类型代码,以及推荐的 C 语言数据类型,这些类型绑定到MYSQL_BIND结构以接收 SQL 值而无需进行转换。根据要绑定的 C 语言变量的数据类型选择buffer_type值。对于整数类型,还应该设置is_unsigned成员以指示变量是带符号的还是无符号的。

SQL 接收值的类型 buffer_type 输出变量 C 类型
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[]
首页