Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  C API プリペアドステートメントタイプコード

23.8.9.1 C API プリペアドステートメントタイプコード

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 TEXTCHARVARCHAR
char[] MYSQL_TYPE_BLOB BLOBBINARYVARBINARY
  MYSQL_TYPE_NULL NULL

セクション23.8.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
CHARBINARY MYSQL_TYPE_STRING char[]
VARCHARVARBINARY MYSQL_TYPE_VAR_STRING char[]
TINYBLOBTINYTEXT MYSQL_TYPE_TINY_BLOB char[]
BLOBTEXT MYSQL_TYPE_BLOB char[]
MEDIUMBLOBMEDIUMTEXT MYSQL_TYPE_MEDIUM_BLOB char[]
LONGBLOBLONGTEXT MYSQL_TYPE_LONG_BLOB char[]
BIT MYSQL_TYPE_BIT char[]

User Comments
Sign Up Login You must be logged in to post a comment.