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


Приложение Е. Библиотека курсоров ODBC

Внимание

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

Библиотека курсоров ODBC (Odbccr32.dll) поддерживает блокируемые курсоры для любого драйвера, соответствующего уровню соответствия API уровня 1, и может распространяться разработчиками со своими приложениями или драйверами. Библиотека курсоров также поддерживает позиционированные инструкции обновления и удаления для результирующих наборов, созданных операторами SELECT . Хотя она поддерживает только статические и перенаправленные курсоры, библиотека курсоров удовлетворяет потребностям многих приложений. Кроме того, он может обеспечить хорошую производительность, особенно для небольших и средних результирующих наборов, а также для приложений, которые не имеют хорошей поддержки курсоров.

Библиотека курсоров — это библиотека динамической компоновки (DLL), которая находится между диспетчером драйверов и драйвером. Когда приложение вызывает функцию, диспетчер драйверов вызывает функцию в библиотеке курсоров, которая выполняет функцию или вызывает ее в указанном драйвере. Для заданного подключения приложение указывает, всегда ли используется библиотека курсоров, используемая, если драйвер не поддерживает прокручиваемые курсоры или никогда не используется.

Библиотека курсоров отображается в качестве драйвера диспетчера драйверов. Если библиотека курсоров находится между диспетчером драйверов и драйвером ODBC 2.x, библиотека курсоров отображается как драйвер ODBC 2.x. Если библиотека курсоров находится между диспетчером драйверов и драйвером ODBC 3.x, библиотека курсоров отображается как драйвер ODBC 3.x. Поведение, предоставляемое библиотекой курсоров, зависит от версии драйвера, с которым он работает, за исключением смещения привязки, который поддерживается для драйверов ODBC 2.x и ODBC 3.x.

Чтобы реализовать блоковые курсоры в SQLFetch и SQLFetchScroll, библиотека курсоров неоднократно вызывает SQLFetch в драйвере. Для реализации прокрутки он кэширует данные, полученные в памяти и в файлах дисков. Когда приложение запрашивает новый набор строк, библиотека курсоров извлекает ее по мере необходимости из драйвера или кэша.

Для реализации позиционированных инструкций обновления и удаления библиотека курсоров создает инструкцию UPDATE или DELETE с предложением WHERE , указывающим кэшированное значение каждого привязанного столбца в строке. При выполнении позиционированного оператора обновления библиотека курсоров обновляет кэш из значений в буферах набора строк.

Дополнительные сведения о библиотеке курсоров ODBC см. в следующих разделах этого приложения: