×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

4.3.14.9. GET DESCRIPTOR

4.3.14.9. GET DESCRIPTOR

GET DESCRIPTOR — получить информацию из области дескрипторов SQL

Синтаксис

GET DESCRIPTOR descriptor_name :cvariable = descriptor_header_item [, ... ]
GET DESCRIPTOR descriptor_name VALUE column_number :cvariable = descriptor_item [, ... ]

Описание

GET DESCRIPTOR извлекает информацию о наборе результатов запроса из области дескриптора SQL и сохраняет её в главные переменные. Область дескриптора обычно заполняется с помощью FETCH или SELECT перед использованием данной команды для передачи информации в главные переменные.

Эта команда имеет две формы: первая форма извлекает элементы «заголовка» дескриптора, которые относятся к набору результатов в целом. Одним из примеров является количество строк. Вторая форма, требующая номер столбца в качестве дополнительного параметра, извлекает информацию о конкретном столбце. Примерами являются имя столбца и фактическое значение столбца.

Параметры

descriptor_name #

Имя дескриптора.

descriptor_header_item #

Токен, идентифицирующий извлекаемый элемент информации заголовка. В настоящее время поддерживается только COUNT, позволяющий получить количество столбцов в наборе результатов.

column_number #

Номер столбца, информацию о котором необходимо извлечь. Нумерация начинается с 1.

descriptor_item #

Токен, идентифицирующий элемент информации о столбце для получения. См. Раздел 4.3.7.1 для список поддерживаемых элементов.

cvariable #

Главная переменная, которая будет принимать данные, извлеченные из области дескриптора.

Примеры

Пример получения количества столбцов в результирующем наборе:

EXEC SQL GET DESCRIPTOR d :d_count = COUNT;

Пример получения длины данных в первом столбце:

EXEC SQL GET DESCRIPTOR d VALUE 1 :d_returned_octet_length = RETURNED_OCTET_LENGTH;

Пример получения тела данных второго столбца в виде строки:

EXEC SQL GET DESCRIPTOR d VALUE 2 :d_data = DATA;

Ниже приведен пример полной процедуры выполнения оператора SELECT current_database(); и отображение количества столбцов, длины данных в столбцах и самих данных в столбцах:

int
main(void)
{
EXEC SQL BEGIN DECLARE SECTION;
    int  d_count;
    char d_data[1024];
    int  d_returned_octet_length;
EXEC SQL END DECLARE SECTION;

    EXEC SQL CONNECT TO testdb AS con1 USER testuser;
    EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT;
    EXEC SQL ALLOCATE DESCRIPTOR d;

    /* Declare, open a cursor, and assign a descriptor to the cursor  */
    EXEC SQL DECLARE cur CURSOR FOR SELECT current_database();
    EXEC SQL OPEN cur;
    EXEC SQL FETCH NEXT FROM cur INTO SQL DESCRIPTOR d;

    /* Get a number of total columns */
    EXEC SQL GET DESCRIPTOR d :d_count = COUNT;
    printf("d_count                 = %d\n", d_count);

    /* Получение длины возвращаемого столбца */
    EXEC SQL GET DESCRIPTOR d VALUE 1 :d_returned_octet_length = RETURNED_OCTET_LENGTH;
    printf("d_returned_octet_length = %d\n", d_returned_octet_length);

    /* Выборка возвращаемого столбца в виде строки */
    EXEC SQL GET DESCRIPTOR d VALUE 1 :d_data = DATA;
    printf("d_data                  = %s\n", d_data);

    /* Закрытие */
    EXEC SQL CLOSE cur;
    команда EXEC SQL COMMIT;

    EXEC SQL DEALLOCATE DESCRIPTOR d;
    оператор DISCONNECT ALL;

    return 0;
}

При выполнении данного примера результат будет выглядеть следующим образом:

d_count                 = 1
d_returned_octet_length = 6
d_data                  = testdb

Совместимость

GET DESCRIPTOR определен в стандарте SQL.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению