Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

7.1.3 Функции для работы с результатами sql-запросов Закрытие ранее открытого результата

Функция hytech_free_result используется для закрытия ранее открытого результата.

Формат вызова:

hytech_free_result ( ResId );

Аргументы:

Аргумент

Тип

Значение

ResId

String

Идентификатор результата, полученный в результате функции hytech_query.

Получение количества полей в результате запроса

Функция hytech_num_fields используется для получения количества полей в результате запроса.

Формат вызова:

FldCnt = hytech_num_fields ( ResId );

Аргументы:

Аргумент

Тип

Значение

ResId

String

Идентификатор результата, полученный в результате функции hytech_query.

Результат:

Тип

Значение

Integer

Количество полей в результате.

Получение информации о полях в виде массива

Функция hytech_field_info используется для получения информации о полях в виде массива. В качестве элементов массива будут элементы со следующими ключами:

  • aliasno – порядковый номер таблицы при запросах типа: select ... from TAB1 a, TAB2 b where a.ID = b.ID;      a и b – это алиасы, нумеруются с 0;

  • fieldno – порядковый номер поля (начиная с 1);

  • type – тип поля (число), имеет следующие значения:

    1. Массив символов длиной не более заданной;

    2. Массив байтов заданной длины;

    3. Элемент – unsigned char (короткое целое);

    4. Элемент – signed short;

    5. Элемент – unsigned short;

    6. Дата – unsigned short;

    7. Номер – 3-х байтовое целое без знака;

    8. Элемент – long int;

    9. Элемент – unsigned long int;

    10. Элемент – float;

    11. Деньги (double);

    12. Элемент – double;

    13. Элемент – signed __int64;

    14. Элемент – unsigned __int64.

  • size – размер поля в байтах;

  • coder – имя кодификатора для выражения типа coder(...);

  • fname – имя поля;

  • asname – для конструкции select F1 as NAME from ... вернет – NAME.

Формат вызова:

Result = hytech_field_info ( ResId, FieldNumber );

Аргументы:

Аргумент

Тип

Значение

ResId

String

Идентификатор результата, полученный в результате функции hytech_query.

FieldNumber

Integer

Номер поля в результате, нумерация выполняется с 0.

Результат:

Тип

Значение

Array

Массив с информацией о поле, со структурой, описанной выше.

Пример использования функций

Пример:

<?php $h = hytech_connect( "tcpip:/localhost:13000", "HTADMIN", "PASSWORD" ); $rh = hytech_query( "fix all; select * from TABLES;", $h,                     10, HYTECH_DIRECT_DOWN ); // получаем количество полей в результате $cnt = hytech_num_fields( $rh ); // получаем количество строк в результате $row = hytech_num_rows( $rh ); echo "Строк: $row <br />"; echo "Полей: $cnt <br />"; // получаем информацию о первом поле (нумерация с 0) $field_info = hytech_field_info( $rh, 0 ); foreach( $field_info as $key => $val ) {   // выводим ключ массива и значение   echo " $key = $val <br />"; } // по ключу fname выводим имя поля echo "Имя поля: {$field_info[fname]} <br />"; // закрываем результат запроса hytech_free_result( $rh ); hytech_close( $h ); ?>