Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Диспетчер драйверов — это библиотека, которая управляет взаимодействием между приложениями и драйверами. Например, на платформах Microsoft Windows диспетчер драйверов представляет собой библиотеку динамической компоновки (DLL), написанную корпорацией Майкрософт, и может распространяться пользователями распространяемого пакета SDK MDAC 2.8 с пакетом обновления 1 (SP1).
Диспетчер драйверов существует главным образом в качестве удобства для записи приложений и решает ряд проблем, распространенных для всех приложений. К ним относятся определение драйвера для загрузки на основе имени источника данных, загрузки и выгрузки драйверов, а также вызов функций в драйверах.
Чтобы узнать, почему последний является проблемой, рассмотрите, что произойдет, если приложение вызывает функции непосредственно в драйвере. Если приложение не было связано непосредственно с определенным драйвером, необходимо создать таблицу указателей на функции в этом драйвере и вызвать эти функции указателем. Использование одного кода для нескольких драйверов одновременно добавит еще один уровень сложности. Сначала приложению необходимо задать указатель функции, чтобы указать правильную функцию в правильном драйвере, а затем вызвать функцию через этот указатель.
Диспетчер драйверов решает эту проблему, предоставляя одно место для вызова каждой функции. Приложение связано с диспетчером драйверов и вызывает функции ODBC в диспетчере драйверов, а не драйвере. Приложение определяет целевой драйвер и источник данных с помощью дескриптора подключения. При загрузке драйвера диспетчер драйверов создает таблицу указателей на функции в этом драйвере. Он использует дескриптор подключения, переданный приложением, для поиска адреса функции в целевом драйвере и вызовах этой функции по адресу.
В большинстве случаев диспетчер драйверов просто передает вызовы функций из приложения в правильный драйвер. Однако она также реализует некоторые функции (SQLDataSources, SQLDrivers и SQLGetFunctions) и выполняет базовые проверка ошибок. Например, диспетчер драйверов проверка, которые обрабатываются, не являются пустыми указателями, которые вызываются в правильном порядке, и что некоторые аргументы функций допустимы. Полное описание ошибок, проверка проверка диспетчера драйверов, см. в разделе справочника по каждой функции и приложению B: таблицы перехода состояния ODBC.
Последняя основная роль диспетчера драйверов — загрузка и выгрузка драйверов. Приложение загружает и выгружает только диспетчер драйверов. Если он хочет использовать конкретный драйвер, он вызывает функцию подключения (SQL Подключение, SQLDriver Подключение или SQLBrowse Подключение) в диспетчере драйверов и указывает имя определенного источника данных или драйвера, например "Учет" или "SQL Server". Используя это имя, диспетчер драйверов ищет сведения о источнике данных для имени файла драйвера, например Sqlsrvr.dll. Затем он загружает драйвер (если он еще не загружен), сохраняет адрес каждой функции в драйвере и вызывает функцию подключения в драйвере, которая затем инициализирует себя и подключается к источнику данных.
Когда приложение будет готово с помощью драйвера, он вызывает SQLDisconnect в диспетчере драйверов. Диспетчер драйверов вызывает эту функцию в драйвере, который отключается от источника данных. Однако диспетчер драйверов сохраняет драйвер в памяти, если приложение повторно подключается к нему. Он выгрузит драйвер, только если приложение освобождает подключение, используемое драйвером, или использует подключение для другого драйвера, а другие подключения не используют драйвер. Полное описание роли диспетчера драйверов для загрузки и выгрузки драйверов см. в разделе "Роль диспетчера драйверов" в процессе Подключение ion.