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


SQLGetData (библиотека курсоров)

Внимание

Эта функция будет удалена в будущей версии Windows. Избегайте использования этой функции в новых рабочих областях разработки и планируете изменять приложения, которые в настоящее время используют эту функцию. Корпорация Майкрософт рекомендует использовать функции курсора драйвера.

В этом разделе рассматривается использование функции SQLGetData в библиотеке курсоров. Общие сведения о SQLGetData см. в разделе "Функция SQLGetData".

Библиотека курсоров реализует SQLGetData , сначала создав инструкцию SELECT с предложением WHERE , которое перечисляет значения, хранящиеся в кэше для каждого связанного столбца в текущей строке. Затем он выполняет инструкцию SELECT , чтобы повторно выбрать строку и вызывает SQLGetData в драйвере, чтобы получить данные из источника данных (в отличие от кэша).

Внимание

Предложение WHERE , созданное библиотекой курсоров для идентификации текущей строки, может не идентифицировать строки, определить другую строку или определить несколько строк. Дополнительные сведения см. в разделе "Создание инструкций поиска".

Если для атрибута инструкции SQL_ATTR_USE_BOOKMARKS задано значение SQL_UB_VARIABLE, SQLGetData можно вызвать в столбце 0 для возврата данных закладки.

Вызовы SQLGetData подвергаются следующим ограничениям:

  • SQLGetData не может вызываться для курсоров, доступных только для пересылки.

  • SQLGetData можно вызывать только в том случае, если выполняются следующие условия: инструкция SELECT создает результирующий набор; инструкция SELECT не содержит соединения, предложения UNION или предложения GROUP BY, а также любые столбцы, использующие псевдоним или выражение в списке выбора, не привязаны к SQLBindCol.

  • Если драйвер поддерживает только одну активную инструкцию, библиотека курсоров извлекает остальную часть результирующий набор перед выполнением инструкции SELECT и вызовом SQLGetData.