Главная ]
2.10.Понятие XSQLDA
Программирование
Базы данных



 

Все DSQL приложения должны содержать объявление одной или нескольких структур данных, называемых расширенными областями данных SQL -  XSQLDA (eXtended SQL Descriptor Areal). Определение структуры XSQLDA может быть найдено в заголовочном файле ibase.h . Приложения объявляют элементы XSQLDA для использования.

XSQLDA это структура данных базового языка который использует DSQL для обмена данными с БД при обработке SQL инструкции. Есть два типа XSQLDA: для ввода и для вывода. Оба дескриптора реализованы с использованием структуры XSQLDA.

Одно поле в XSQLDA, sqlvar, является структурой XSQLVAR. Sqlvar особенно важен, потому что один XSQLVAR должен быть определен для каждого входного параметра или возвращаемого столбца. Подобно XSQLDA, XSQLVAR - структура, определенная в ibase.h .

Приложения не объявляют  XSQLVAR раньше времени, но должны, вместо этого, динамически выделить память для хранения надлежащего числа структур XSQLVAR, требуемых для каждой инструкции DSQL прежде, чем она будет выполнена, а затем освобождают их, соответственно после  выполнения инструкции.

Следующий рисунок иллюстрируют связи между XSQLDA и XSQLVAR:

Элемент XSQLDA               

short version

char sqldaid[8]

ISC_LONG sqldabc

short sqln

short sqld

XSQLVAR sqlvar[1] 

Массив n элементов XSQVAR  

1-й элемент                                                   n-й элемент

short sqltype                                                      short sqltype

short sqlscale                                                     short sqlscale

short sqlsubtype                                                 short sqlsubtype

short sqllen                                                       short sqllen

char *sqldata                                                    char *sqldata

short *sqlind                                                     short *sqlind

short sqlname_length                                     short sqlname_length

char sqlname[32]                                          char sqlname[32]

short relname_length      . . .                               short relname_length

char relname[32]                                          char relname[32]

short ownname_length                                                 short ownname_length

char ownname[32]                                        char ownname[32]

short aliasname_length                                              short aliasname_length

char aliasname[32]                                       char aliasname[32]

 

XSQLDA для ввода состоит из одной структуры XSQLDA и одной структуры XSQLVAR для каждого входного параметра.  XSQLDA для вывода также состоит из одной структуры XSQLDA и одной структуры XSQLVAR для каждого элемента данных, возвращенного инструкцией. XSQLDA и его связанные структуры XSQLVAR выделены в отдельный блок смежной памяти.

Isc_dsql_prepare(), isc_dsql_describe(), и isc_dsql_describe_bind()  могут использоваться, чтобы определить нужное число структур XSQLVAR для выделения, и макрокоманда XSQLDA_LENGTH может использоваться, чтобы выделить нужное количество памяти.

 

<< Назад ] Содержание ] Далее >> ]

 

Дизайн: Piton Alien
Rambler's Top100 Рейтинг@Mail.ru
Сайт создан в системе uCoz