Поделиться через


Как вывести Использование привязок наборов строк (ODBC)

Использование привязки на уровне столбца

  1. Для каждого привязанного столбца выполните следующие действия.

    • Выделите массив из R (или больше) буферов столбцов для хранения значений данных, где R — это число строк в наборе строк.

    • При необходимости выделите массив из R (или больше) буферов столбцов для хранения длин данных.

    • Вызовите SQLBindCol, чтобы связать значение данных столбца и массивы длин данных со столбцом набора строк.

  2. Вызовите функцию SQLSetStmtAttr, чтобы задать следующие атрибуты.

    • В атрибуте SQL_ATTR_ROW_ARRAY_SIZE задайте число строк в наборе строк (R).

    • Задайте значение SQL_ATTR_ROW_BIND_TYPE, равное SQL_BIND_BY_COLUMN.

    • Задайте значение атрибута SQL_ATTR_ROWS_FETCHED_PTR, которое указывает на переменную SQLUINTEGER, предназначенную для хранения количества извлеченных строк.

    • Задайте значение SQL_ATTR_ROW_STATUS_PTR, которое указывает на массив array[R] переменных SQLUSSMALLINT, в котором будут храниться признаки состояния строк.

  3. Выполните инструкцию.

  4. При каждом вызове функции SQLFetch или SQLFetchScroll происходит получение числа строк, равного R, и передача данных в привязанные столбцы.

Использование привязки на уровне строки

  1. Выделите массив array[R] структур, где R — это число строк в наборе строк. Структура должна иметь по одному элементу для каждого столбца, а каждый элемент должен состоять из двух частей:

    • первая часть — это переменная подходящего типа данных, в которой будут храниться данные столбца;

    • вторая часть — это переменная SQLINTEGER, в которой будет храниться признак состояния столбца.

  2. Вызовите функцию SQLSetStmtAttr, чтобы задать следующие атрибуты.

    • В атрибуте SQL_ATTR_ROW_ARRAY_SIZE задайте число строк в наборе строк (R).

    • В атрибуте SQL_ATTR_ROW_BIND_TYPE задайте размер структуры, выделенной в шаге 1.

    • Задайте значение атрибута SQL_ATTR_ROWS_FETCHED_PTR, которое указывает на переменную SQLUINTEGER, предназначенную для хранения количества извлеченных строк.

    • В атрибуте SQL_ATTR_PARAMS_STATUS_PTR задайте указатель на массив array[R] из переменных SQLUSSMALLINT, в котором будут храниться признаки состояния строк.

  3. Для каждого столбца из результирующего набора вызовите функцию SQLBindCol, чтобы связать значение данных и указатель на длину данных столбца с соответствующими им переменными в первом элементе массива структур, выделенных в шаге 1.

  4. Выполните инструкцию.

  5. При каждом вызове функции SQLFetch или SQLFetchScroll происходит получение числа строк, равного R, и передача данных в привязанные столбцы.