6.2.1 Коды типов подготовленных запросов C API
Член buffer_type структур MYSQL_BIND указывает тип данных переменной языка C, связанной с параметром запроса или столбцом набора результатов. Для входных значений buffer_type указывает тип переменной, содержащей значение, которое должно быть отправлено на сервер. Для выходных значений он указывает тип переменной, в которую должно быть сохранено значение, полученное от сервера.
В следующей таблице показаны допустимые значения члена buffer_type структур MYSQL_BIND для входных значений, отправляемых на сервер. Таблица показывает типы переменных языка C, которые вы можете использовать, соответствующие коды типов и типы данных SQL, для которых предоставленное значение может быть использовано без преобразования. Выберите значение buffer_type в соответствии с типом данных переменной языка C, которую вы связываете. Для целочисленных типов также необходимо установить член is_unsigned, чтобы указать, является ли переменная знаковым или беззнаковым.
Таблица 6.1 Допустимые типы входных данных для структур MYSQL_BIND
| Входной тип переменной C |
Значение buffer_type | Тип SQL целевого значения |
|---|---|---|
signed char | MYSQL_TYPE_TINY | |
short int | MYSQL_TYPE_SHORT | |
int | MYSQL_TYPE_LONG | |
long long int | MYSQL_TYPE_LONGLONG | |
float | MYSQL_TYPE_FLOAT | |
double | MYSQL_TYPE_DOUBLE | |
MYSQL_TIME | MYSQL_TYPE_TIME | |
MYSQL_TIME | MYSQL_TYPE_DATE | |
MYSQL_TIME | MYSQL_TYPE_DATETIME | |
MYSQL_TIME | MYSQL_TYPE_TIMESTAMP | |
char[] | MYSQL_TYPE_STRING | , , |
char[] | MYSQL_TYPE_BLOB | , , |
MYSQL_TYPE_NULL | NULL |
Используйте MYSQL_TYPE_NULL, как указано в описании для члена is_null в разделе 6.2 «Структуры данных подготовленных запросов C API».
Для входных строковых данных используйте MYSQL_TYPE_STRING или MYSQL_TYPE_BLOB в зависимости от того, является ли значение строкой символов (небинарной) или бинарной строкой:
MYSQL_TYPE_STRINGуказывает строку входных символов. Значение предполагается в кодировке символов, указанной переменной системы. Если сервер сохраняет значение в столбец с другой кодировкой символов, он преобразует значение в эту кодировку.MYSQL_TYPE_BLOBуказывает бинарную строку входных данных. Значение обрабатывается как имеющее кодировкуbinary. То есть, оно обрабатывается как строка байтов, и преобразование не происходит.
В следующей таблице показаны допустимые значения для члена buffer_type структур MYSQL_BIND для выходных значений, полученных от сервера. Таблица показывает типы данных SQL полученных значений, соответствующие коды типов этих значений в метаданных набора результатов и рекомендуемые типы данных языка C для привязки к структуре MYSQL_BIND для получения значений SQL без преобразования. Выберите значение buffer_type в соответствии с типом данных переменной языка C, которую вы связываете. Для целочисленных типов также необходимо установить член is_unsigned, чтобы указать, является ли переменная знаковым или беззнаковым.
Таблица 6.2 Допустимые типы выходных данных для структур MYSQL_BIND
| Тип SQL полученного значения |
Значение buffer_type | Выходной тип переменной C |
|---|---|---|
MYSQL_TYPE_TINY | signed char | |
MYSQL_TYPE_SHORT | short int | |
MYSQL_TYPE_INT24 | int | |
MYSQL_TYPE_LONG | int | |
MYSQL_TYPE_LONGLONG | long long int | |
MYSQL_TYPE_FLOAT | float | |
MYSQL_TYPE_DOUBLE | double | |
MYSQL_TYPE_NEWDECIMAL | char[] | |
MYSQL_TYPE_SHORT | short int | |
MYSQL_TYPE_TIME | MYSQL_TIME | |
MYSQL_TYPE_DATE | MYSQL_TIME | |
MYSQL_TYPE_DATETIME | MYSQL_TIME | |
MYSQL_TYPE_TIMESTAMP | MYSQL_TIME | |
| , | MYSQL_TYPE_STRING | char[] |
| , | MYSQL_TYPE_VAR_STRING | char[] |
| , | MYSQL_TYPE_TINY_BLOB | char[] |
| , | MYSQL_TYPE_BLOB | char[] |
| , | MYSQL_TYPE_MEDIUM_BLOB | char[] |
| , | MYSQL_TYPE_LONG_BLOB | char[] |
MYSQL_TYPE_BIT | char[] |
© 2025 Oracle
Licensed under the GPLv2 License.