Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Клас CHttpServer.

Підтримка ISAPI в бібліотеці класів MFC.

Лекція 6.

Оператор CASE.

У збережених процедурах використовується також конструкція CASE, що реалізує вибір одного з декількох значень. Розглянемо використання цієї можливості на прикладі, де в процедуру передається числове значення, залежно від якого система встановлює ставку стипендії студента.

 

CREATE PROCEDURE PROVERKA @N TINYINT

AS

BEGIN

DECLARE @X REAL

SELECT @X =

CASE @N

WHEN 1 THEN 17

WHEN 2 THEN 25.50

WHEN 3 THEN 34

ELSE 0

END

PRINT ' Встановлено стипендію:'

PRINT @X

END

 

Використання оператора RETURN у збережених процедурах дозволяє завершити роботу запиту або процедури, а також передати значення підпрограмі, яка визвала дану процедуру.


 

 

Підтримка ISAPI в бібліотеці класів MFC. 21

Клас CHttpServer. 21

CHttpServer::GetExtensionVersion(). 21

CHttpServer::HttpExtensionProc(). 21

CHttpServer::InitInstance(). 22

CHttpServer::CallFunction(). 22

Таблиці трансляції. 22

Функції – обробники. 23

Клас CHttpServerContext. 23

Клас CHtmlStream. 24

У комплекті поставки Visual C++ передбачена підтримка програмних розширень і фільтрів ISAPI, яка реалізується у вигляді набору класів MFC.

 

CHttpServer Базовий клас для ISA – розширень.
CHttpServerContext Клас контекстної інформації для запитів клієнтів.
CHtmlStream Клас для керування HTML – даними по запитах клієнтів.
CHttpFilter Базовий клас для фільтрів ISAPI.
CHttpFilterContext Інтерфейсний клас для структури HTTP_FILTER_CONTEXT.

 

Крім того, бібліотека MFC включає набір макровизначень, що дозволяють задати схему перенаправлення запитів до функцій конкретної реалізації ISA. У Visual C++ є майстер додатків для побудови ISA – розширень і фільтрів ISAPI, що використовують класи MFC ISAPI.

ISA – розширення, що використовують класи MFC, повинні мати один – і лише один – об'єкт, похідний від класу CHttpServer. У цьому класі реалізовані точки входу GetExtensionVersion() і HttpExtensionProc(). Крім того, клас включає додаткові методи, що спрощують обробку запитів, і дозволяє створювати об'єкти CHtmlStream, які використовуються для побудови запитів.

CHttpServer::GetExtensionVersion().

Клас CHttpServer має метод, який пересилає серверу інформацію про версію програмного продукту при першому завантаженні ISA в пам'ять. Ця функція може також використовуватися для ініціалізації ISA.

CHttpServer::HttpExtensionProc().

Ця функція викликається один раз для кожного отриманого від клієнта запиту. Стандартна реалізація цієї функції передбачає створення для запиту нового об'єкта CHttpServerContext, синтаксичний аналіз запиту, виклик метода CHttpServer::InitInstance(), а також виклик функції CHttpServer::CallFunction() для перенаправлення запита клієнта в одну з функцій ISA за допомогою таблиці трансляції. За допомогою функції CHttpServer::OnParseError() у ній генеруються коди HTML для обробки можливих помилок.

CHttpServer::InitInstance().

Метод InitInstance() класу CHttpServer викликається стандартною реалізацією функції CHttpServer::HttpExtensionProc() при отриманні чергового запиту. Ця функція може перекриватися в класі, похідному від CHttpServer, для виконання необхідної ініціалізації. Операції, які повинні виконуватися тільки один раз, при завантаженні динамічної бібліотеки в пам'ять, у жодному випадку не повинні включатися в цю функцію; їх місце – у функції GetExtensionVersion().

CHttpServer::CallFunction().

Метод CallFunction() класу CHttpServer викликається стандартною реалізацією метода CHttpServer::HttpExtensionProc() для перенаправлення команди із запита клієнта на виконання в одну з функцій ISA. Стандартна реалізація метода використовує для вибору функції – обробника таблицю трансляції (аналогічну таблиці повідомлень). Якщо необхідно виконувати нестандартне перенаправлення команд функціям – обробникам, цей метод слід перекрити – в цьому випадку в таблиці трансляції немає необхідності.




Переглядів: 559

<== попередня сторінка | наступна сторінка ==>
Цикл WHILE. | Функції – обробники.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.01 сек.