MYSQL_BIND
構造の buffer_type
メンバーは、ステートメントパラメータまたは結果セットカラムにバインドされている C 言語変数のデータ型を示します。入力の場合、buffer_type
はサーバーに送信される値を格納する変数の型を示します。出力の場合、それはサーバーから受け取った値を格納すべき変数の型を示します。
次の表に、サーバーに送信される入力値に対して、MYSQL_BIND
構造の buffer_type
メンバーに許可される値を示します。表に、使用できる C 変数型、対応するタイプコード、および提供された値を変換なしで使用できる SQL データ型を示します。バインドする C 言語変数のデータ型に従って、buffer_type
値を選択します。整数型の場合、is_unsigned
メンバーも設定して、変数が符号付きか符号なしかを示してください。
入力変数 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 |
セクション23.7.9「C API プリペアドステートメントデータ構造」で、is_null
メンバーの説明に示されているように、MYSQL_TYPE_NULL
を使用します。
入力文字列データの場合、値が文字 (非バイナリ) であるか、バイナリ文字列であるかによって、MYSQL_TYPE_STRING
または MYSQL_TYPE_BLOB
を使用します。
MYSQL_TYPE_STRING
は文字入力の文字列データを示します。この値は、character_set_client
システム変数によって示される文字セットに含まれるものとみなされます。サーバーが値を異なる文字セットでカラムに格納する場合、値をその文字セットに変換します。MYSQL_TYPE_BLOB
はバイナリ入力文字列データを示します。この値はbinary
文字セットを持つものとして扱われます。つまり、それは、バイト文字列として扱われ、変換は行われません。
次の表に、サーバーから受信される出力値の MYSQL_BIND
構造の buffer_type
メンバーの許可される値を示します。表には、受信された値の SQL 型、そのような値の結果セットメタデータに含まれる対応するタイプコード、および変換なしで SQL 値を受信するために MYSQL_BIND
構造にバインドする推奨される C 言語データ型を示します。バインドする 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[] |