Программирование >>  Руководство по созданию web приложений 

1 ... 107 108 109 [ 110 ] 111 112 113 ... 141


322 Базы данных в - > Прашческое

Hello from Extension!

POST

iinagefe-xbrtinap.

deflate

Рис. 7-7. ДокументНТМЦ динамическирасширением81ч11о.с1!

В части этого отображается содержимое некоторых полей

структуры : : . . .. а в нижней - содержимое переменной

ALL HTTP, полученное с помощью функции GetServerVariable.

Исходный текст расширения isheUo.dU представлен в листинге 7-10.

Листинг 7-10 Вы найдете в файле ctiTIISHEl Но с на прилагаемом к кни-

ге компакт-диске.

Наряду с обычным для приложений Windows файлом мы

,111 в исходный текст файл в котором определены все необходи-

мые константы, структуры данных и прототипы функций:

f f include<i lrido s. Ь>

Этот файл поставляется в IVIicrosoft Visual С++.

В определена - sior> - ее мы уже рас-

сматривали ранее. Она записывает ISAPI и текстовую стро-

ку описания расширения в поля структуры типа HSE VERSION INFO с именами и . :.. соответственно. Адрес структуры

- передается функции GetExtensionVersion . параметр. Функция is.ioriproc обращается к буферу sil . для подготовки

динамически создаваемого документа HTIVIL, который будет послан удаленному в результате работы ; В качестве вспомогательного буфера применяется буфер

CHAR CHAR



Далее в документ выводятся строка с названием метода данных

(иоле . : :., строка параметров запуска расширения ISAPI (поле Ipsz-физический путь к программному файлу библиотеки DTT расширения (поле полный размер данных, которые нужно прочитать (поле - , а также тип данных (поле IpszContcntTvpe):

: at эй.

. , taieatea; last

После этого в документ снова добавляется разделительная линия и отображается aiaaa.a Переменных сервера с префиксом имени HTTP, для aiau используется рассмотренная ранее функция CetServeaVar

= 4096;

Прежде всего мы в нулевое значение:

. : 0;

Потом в это поле мы результат выполнения команды.

Далее в буфер szBuff копируется заголовок ПТТР и начальный фрагмент документа ПТМТ, для чего используется функция wsprlPtf:

Content-Type: - ,.\r\ri

ISAPI

from ISAPI ):

После этого к буферу szBuff с . функции strcat добавляются дру-

гие строки документа. Например, разделительная линия:

После первой разделительной линии в документ вставляются несколько строк со значениями некоторых полей структуры типа . В фрагменте кода показана строка версии интерфейса ISAPT

Version:



324 Базы данных в Практическое

В завершение в документ записывается финальная

таким образом документ отправляется посетителю сервера - функцией - как это показано

- - . ; ijULL, HULL,

return

= 200;

return HSE STATUS SUCCESS;

Если при пересылке данных iipiiiiat.Ill lii ошибка, завершает свою

работу с кодом : В случае успеха в ноле состояния ;

ausCoclB записывается код 200. - - этим расширение завершает свою рабо-TycKOflOMHSESTATUSSUCCESS.

Создавая проект расширения ISAPI, Вы должны файл опреде-

ления модуля для соответствующей библиотеки DLL (листинг 7-И).

Листинг 7-11 хранится в файле fiti7\ISHELI..i на прилагаемом к кни-

ге коипакт-дмскв.

В разделе EXORT этого файла нужно имена

Version и Н , aiproc.

LIBRARY

DESCRIPTION ISAPI DLL

EXPORTS

HttpExtensionProc

Вызов функций ODBC из ISAPI

Ранее мы рассказывали, как обращаться к базе данных из программы CGI с применением объектного ADO. В этом разделе мы приведем исходные тексты расширения ISAPI, которое тоже работает с базой данных, но с приме-программного интерфейса ODBC.

Для этого приложения (с : мы использу-

ем форму, показанную на 7-8.

С этой формы нашего магазина сможет просмотреть

свои права. Для этого ему придется ввести в ней свой идентифи-

катор и пароль, а затем щелкнуть кнопку Submit.

Расширение ISFORM обращается к базе данных BoolcStore, запуская на выполнение хранимую процедуру -г-- Login. Если пользователь зарегистрирован в ISFORM отправляет ему динамически созданный документ HTML, в котором отображается идентификатор пользователя, его пароль и права, из этой таблицы (рис. 7-9).



1 ... 107 108 109 [ 110 ] 111 112 113 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика