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


Результаты обработки — обработка результатов

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

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

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

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

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

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

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

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

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

    • Получение данных из столбца типа text или image производится многократным вызовом функции 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)