Серверные расширения ISAPI являются DLL. Они работают в пространстве процесса сервера. Параллельные запросы, сделанные для расширения ISAPI, обрабатываются отдельных потоков. Таким образом код в расширение ISAPI должен быть поточно-.
Положение
Методы доступа базы данных, которые используют для обработки инициализации COM не являются поточно ориентированными. Особая проблема заключается в инициализации библиотеки COM в одном потоке и затем с помощью другого потока для доступа к данным. Текущая реализация Microsoft Desktop драйверов ODBC попадает в эту категорию. Эти драйверы (dBase, Microsoft Visual FoxPro, Microsoft Access, Microsoft Excel, парадокс и текст), которые поставляются с Visual C++, используйте компонент database engine Microsoft Jet 3.0, которая не является поточно ориентированной. Кроме того объекты доступа К данным (DAO) – это на основе COM API, поэтому, она работает надежно в многопоточной среде расширения ISAPI.
Могут существовать другие методы доступа к базе данных, которые не являются поточно-.
Резолюция
Для доступа к базе данных из сервера расширения ISAPI, используйте драйвер ODBC, который разработан и протестирован для многопоточных использования. Примером являются корпорации Майкрософт драйверы ODBC для Microsoft SQL Server 6.x.
Классы MFC ODBC базе данных являются поточно ориентированными по MFC 4.2. Убедитесь, что любой драйвера базы данных ODBC, которое вы используете с этими классами также является поточно ориентированной.
Приложения, которые используют классы MFC ODBC базы данных до версии MFC 4.2 должны иметь код базы данных внутри критической секции для обеспечения только один поток получает доступ к MFC код базы данных на один раз. Дополнительные сведения содержатся в разделе класс CCriticalSection.
В настоящее время классы MFC DAO базы данных не являются поточно ориентированными, потому что они используют DAO COM-объекты на базе.
Технические примечания по номеру |nbsp; Технические примечания по категориям