Результаты процесса (ODBC)

Обработка результатов

  1. Получение сведений результирующих наборов.

  2. Если используются привязанные столбцы, для каждого столбца, к которому нужно привязать, вызовите SQLBindCol , чтобы привязать буфер программы к столбцу.

  3. Для каждой строки в результирующем наборе:

    • Вызовите SQLFetch, чтобы получить следующую строку.

    • Если используются привязанные столбцы, используйте данные, доступные в буферах привязанных столбцов.

    • Если используются несвязанные столбцы, вызовите SQLGetData один или несколько раз, чтобы получить данные для несвязанных столбцов после последнего привязанного столбца. SQLGetData Вызовы должны быть в порядке увеличения числа столбцов.

    • Вызовите SQLGetData несколько раз, чтобы получить данные из текста или столбца изображения.

  4. Когда SQLFetch сообщает конец результирующий набор, возвращая SQL_NO_DATA, вызовите SQLMoreResults , чтобы определить, доступен ли другой результирующий набор.

    • Если он возвращает SQL_SUCCESS, доступен другой результирующий набор.

    • Если он возвращает SQL_NO_DATA, больше результирующих наборов нет.

    • Если он возвращает SQL_SUCCESS_WITH_INFO или SQL_ERROR, вызовите SQLGetDiagRec , чтобы определить, доступны ли выходные данные из инструкции PRINT или RAISERROR.

      Если параметры привязанной инструкции используются для выходных параметров или возвращаемого значения хранимой процедуры, используйте данные, доступные в буферах привязанных параметров. Кроме того, при использовании привязанных параметров каждый вызов SQLExecute или SQLExecDirect выполнит инструкцию SQL S , где S — это количество элементов в массиве связанных параметров. Это означает, что для обработки будут наборы результатов S , где каждый набор результатов состоит из всех результирующих наборов, выходных параметров и кодов возврата, обычно возвращаемых одним выполнением инструкции SQL.

    Замечание

    Если результирующий набор содержит вычислительные строки, каждая вычисляемая строка становится доступной в виде отдельного результирующий набор. Эти вычислительные результирующие наборы перемежаются в обычных строках и разбивают обычные строки на несколько результирующих наборов.

  5. При необходимости вызовите SQLFreeStmt с SQL_UNBIND, чтобы освободить все связанные буферы столбцов.

  6. Если доступен другой результирующий набор, перейдите к шагу 1.

Замечание

Чтобы отменить обработку результирующий набор перед возвратом SQLFetch SQL_NO_DATA, вызовите SQLCloseCursor.

См. также

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