Шаг 4а. Выборка результатов
Следующий шаг — получить результаты, как показано на следующем рисунке.
Если инструкция, выполненная на шаге 3. Сборка и выполнение инструкции SQL, была инструкцией SELECT или функцией каталога, приложение сначала вызывает SQLNumResultCols , чтобы определить количество столбцов в результирующем наборе. Этот шаг не требуется, если приложение уже знает количество столбцов результирующего набора, например если инструкция SQL жестко закодирована в вертикальном или пользовательском приложении.
Затем приложение извлекает имя, тип данных, точность и масштаб каждого столбца результирующих наборов с помощью SQLDescribeCol. Опять же, это не обязательно для таких приложений, как вертикальные и пользовательские приложения, которые уже знают эту информацию. Приложение передает эти сведения в SQLBindCol, который привязывает переменную приложения к столбцу в результирующем наборе.
Теперь приложение вызывает SQLFetch , чтобы получить первую строку данных и поместить данные из этой строки в переменные, связанные с SQLBindCol. Если в строке есть длинные данные, он вызывает SQLGetData , чтобы получить эти данные. Приложение продолжает вызывать SQLFetch и SQLGetData для получения дополнительных данных. После завершения получения данных он вызывает SQLCloseCursor , чтобы закрыть курсор.
Полное описание получения результатов см. в разделе "Получение результатов" (базовый) и получение результатов (дополнительно).
Теперь приложение возвращается на шаг 3. Сборка и выполнение инструкции SQL для выполнения другой инструкции в той же транзакции; или переходит к шагу 5. Фиксация транзакции для фиксации или отката транзакции.