Программирование >>  Программный интерфейс приложений 

1 ... 226 227 228 [ 229 ] 230 231 232 ... 264


После считывания результирующего набора пользователь получает возможность вызывать функции интерфейса API для получения данных результирующего набора (значения строк набора) или метаданных (информации о результирующем наборе, например, количество столбцов, их типы, длины и т.п.).

mysql row. Тип mysql row содержит значения одной строки данных, представленной в виде массива строк определенного размера. В строковой форме функциями возвращаются все значения, даже числовые. Единственное исключение составляют строковые значения null, которые представляются в структуре mysql row С-указателем null

Число значений в строке определяется функцией mysql num fields О. Значение i-ro столбца в строке задается элементом row[i], где 1 может изменяться в пределах от О до mysql num f ields (res set)-1. (res set - это указатель на результирующий набор mysql res.)

Заметьте, что тип mysql ROW уже является указателем, поэтому переменную строки можно описывать следующим образом:

mysql row row; /* правильно */

Нельзя описывать ее так:

mysql row *row; /* неправильно */

Значения типа mysqlrow всегда заканчиваются нулями, поэтому недвоичные значения могут рассматриваться как заканчивающиеся нулем строки. Однако информационные значения с двоичными данными также могут включать нули, поэтому должны обрабатываться как строки определенной длины. Для определения длин значений строки воспользуйтесь функцией mysql f etch lengths (): unsigned long *length; length = mysql fetch length {res set); Для значений null эта функция возвращает длину О,

mysql field. Клиентская библиотека использует структуры mysql field для предоставления метаданных о столбцах результирующего набора (по одной структуре на каждый столбец). Количество структур mysql field Определяет функция mysql num fields О . Пользователь может получать доступ к структурам полей посредством вызова функции mysql fetch field() или перемещаться вперед и назад по структурам с помощью функций mysql field tell() и mysql field seek().

Структура mysql field исключительно полезна для представления или интерпретации содержимого строк данных. Она имеет следующий вид:

typedef struct st mysql field (



char *name; char *table; char *def;

enum enum field types type; unsigned int length; unsigned int max length; unsigned int flags; unsigned int decimals; } mysql field;

Элементы структуры mysql field имеют следующие значения.

name. Имя столбца, представленное в виде строки, завершающейся символом null. Если значения столбцов рассчитываются как результаты выражений, имя name представляет собой это выражение в строковой форме. Если столбец или выражение заданы в качестве псевдонима, имя name является именем псевдонима. Результатом вьшолнения следующего запроса, например, станут значения name столбцов ту со1 , 4* (ту со1+1) и тс : select my col, 4*(my col + l), my col as mc ...

table. Имя таблицы, столбец которой считывается, представленное в виде строки, завершающейся символом null. Если значения столбца рассчитываются как результаты выражений, table представляет собой пустую строку. Например, если запустить запрос, аналогичный следующему, имя таблицы для первого столбца (ту со1) будет равно my tbl, а для второго (ту col+0) окажется пустой строкой:

select my col, my col+0 from my tbl ...

def. Значение no умолчанию для столбца, представленное в форме строки, завершающейся символом null. Этот элемент структуры mysqlfield устанавливается только посредством вызова функции mysgl list f ields О . Во всех остальных случаях он имеет значение null. (Чтобы получить значения столбцов по умолчанию, можно запустить запрос describe tbljiame или show fields from tbljiame и исследовать результирующий набор.)

type. Тип столбца. Тип столбца определяется как результат выражения и устанавливается в зависимости от типов элементов этого выражения. Так, например, если столбец ту со1 имеет тип varchar (20), элемент type будет иметь значение field type var string, а тип type для столбца типа

length(my col) будеТ field type longlong.

Возможные значения элемента type представлены в файле mysglcom.h и описываются в табл. Е.1.



Таблица Е. 1. Значения элемента type структуры MysQL FiELD

Значение type

Тип столбца

FIELD TyPE BLOB

BLOB или TEXT

FIELD TyPE DATE

DATE

FIELD TYPE DATETIME

DATETIME

FIELD TyPE DECIMAL

DECIMAL или NUMERIC

FIELD TyPE DOUBLE

DOUBLE или REAL

FIELD TYPE ENUM

ENUM

FIELD TYPE FLOAT

FLOAT

FIELD TYPE INT24

MEDIUMINT

FIELD TYPE LONG

FIELD TYPE LOMGLOMG

BIGINT

FIELD TYPE NULL

NULL

FIELD TYPE SET

FIELD TYPE SHORT

SMALLINT

FIELD TYPE STRING

CHAR

FIELD TYPE TIME

TIME

FIELD TYPE TIMESTAMP

TIMESTAMP

FIELD TYPE TINY

TINYINT

FIELD TYPE VAR STRING

VARCHAR

FIELD TYPE YEAR

YEAR

В исходных файлах более старых версий можно найти ссылки на тип fieldtypechar. Это однобайтовый ТИП, который в современных версиях имеет название field type tiny.

length. Длина столбца в соответствии с параметрами оператора create table, С ПОМОЩЬЮ КОТОРОГО бьша создана таблица. Длина столбца рассчитывается на основании выражения и определяется длинами элементов выражения.

maxlength. Длина самого длинного значения столбца, реально присутствующего в результирующем наборе. Если столбец, например, содержит значения Bill , Jack и Belvidere , значение max length для него будет равно 9.

Поскольку значение maxlength можно определить только после вывода всех строк, оно отвечает действительности



1 ... 226 227 228 [ 229 ] 230 231 232 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика