|
Программирование >> Руководство по созданию web приложений
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).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |