Spec-Zone.ru › MySQL Connectors 1.0

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

Таблица 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

Таблица 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.
https://docs.oracle.com/cd/E17952_01/c-api-5.7-en/c-api-prepared-statement-type-codes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API