чтобы проверить имеет или нет
?ы можете использовать макрос IS_NUM(), чтобы проверить имеет или нет поле числовой тип. Передайте значение type в IS_NUM(). Вернется TRUE, если поле числовое: if (IS_NUM(field->type)) printf("Field is numeric\n");
unsigned int length Ширина поля, как она определена в описании таблицы. unsigned int max_length Максимальная ширина поля для набора результатов (длина самого длинного поля для строк в наборе результатов). Если Вы используете mysql_store_result() или mysql_list_fields(), это содержит максимальную длину поля. Если Вы используете mysql_use_result(), значение этой переменной нулевое. unsigned int flags Различные биты задают флажки для поля. Значение flags может иметь ноль или большее количество из следующего набора битов:
Значение Flag |
Что это значит |
NOT_NULL_FLAG |
Поле не может быть NULL |
PRI_KEY_FLAG |
Поле часть первичного ключа |
UNIQUE_KEY_FLAG |
Поле часть уникального ключа |
MULTIPLE_KEY_FLAG |
Поле часть неуникального ключа |
UNSIGNED_FLAG |
Поле имеет атрибут UNSIGNED |
ZEROFILL_FLAG |
Поле имеет атрибут ZEROFILL |
BINARY_FLAG |
Поле имеет атрибут BINARY |
AUTO_INCREMENT_FLAG |
Поле имеет атрибут AUTO_INCREMENT |
ENUM_FLAG |
Поле имеет тип ENUM |
BLOB_FLAG |
Поле имеет тип BLOB или TEXT |
TIMESTAMP_FLAG |
Поле имеет тип TIMESTAMP |
Использование BLOB_FLAG, ENUM_FLAG и TIMESTAMP_FLAG не рекомендуется потому, что они указывают тип поля, а не атрибут типа. Предпочтительно проверить field->type вместо FIELD_TYPE_BLOB, FIELD_TYPE_ENUM или FIELD_TYPE_TIMESTAMP. Пример ниже иллюстрирует типичное использование flags: if (field->flags & NOT_NULL_FLAG) printf("Field can't be null\n"); Вы можете использовать следующие макрокоманды, чтобы определить булево состояние значения flags:
IS_NOT_NULL(flags) |
Истина, если это поле определено как NOT NULL |
IS_PRI_KEY(flags) |
Истина, если это поле первичный ключ |
IS_BLOB(flags) |
Истина, если это поле BLOB или TEXT |
unsigned int decimals Число допустимых десятичных чисел для числовых полей.
Содержание раздела