![](/user_photo/8997_nLds_.jpg)
Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009
.pdf654 Часть 4. Публикация баз данных в Интернете
W r i t e T i t l e ( p C t x t ) ;
/ / С т р о к о в а я п е р е м е н н а я , и с п о л ь з у е м а я д л я х р а н е н и я / / ф о р м и р у е м о г о H T M L - д о к у м е н т а
C H A R r e s B u f f [ 4 0 9 6 ] ; C H A R t m p B u f f [ 4 0 9 6 ] ; D W O R D d w S i z e ;
/ / З а п и с ь в б у ф е р з а г о л о в к а H T T P w s p r i n t f ( r e s B u f f ,
" < H T M L X H E A D X T I T L E > I S A P I - м о д у л ь < / T I T L E X / H E A D > \ n "
" < B O D Y B G C O L O R = # F F F F F F X H 2 > P a 6 o T a e T 1 8 А Р 1 - м о д у л ь ! < / Н 2 > \ п " ) ; / / Д о б а в л е н и е р а з д е л и т е л ь н о й л и н и и
s t r c a t ( r e s B u f f , " < H R > " ) ;
/ / В ы в о д н а з в а н и я м е т о д а п е р е д а ч и д а н н ы х
w s p r i n t f ( t m p B u f f , " < В Р > И с п о л ь з у е т с я м е т о д : % s " , p C t x t - > m _ p E C B - > l p s z M e t h o d ) ;
s t r c a t ( r e s B u f f , t m p B u f f ) ;
/ / О т о б р а ж е н и е с о д е р ж и м о г о п е р е м е н н о й P A T H _ I N F O
s t r c a t ( r e s B u f f , " < В Р > З н а ч е н и е п е р е м е н н о й P A T H J N F O : " ) ; c h a r p a r [ 1 0 ] ;
d w S i z e = 10;
p C t x t - > m _ p E C B - > G e t S e r v e r V a r i a b l e ( p C t x t - > m _ p E C B - > C o n n l D , ( L P S T R ) " P A T H J N F O " , ( L P V O I D ) p a r , & d w S i z e ) ;
s t r c a t ( r e s B u f f , p a r ) ;
/ / В ы в о д о к о н ч а н и я д о к у м е н т а H T M L
/ / s t r c a t ( r e s B u f f , " < / B O D Y X / H T M L > " ) ; * p C t x t « _ T ( r e s B u f f ) ;
/ / И н и ц и а л и з а ц и я с и с т е м ы C O M C o l n i t i a l i z e ( N U L L ) ;
/ / И н и ц и а л и з а ц и я с л у ж е б н ы х с т р о к о в ы х п е р е м е н н ы х C S t r i n g c s F o r C o n n e c t ( " D S N = A u t h o r s ; U I D = ; P W D = ; " ); C S t r i n g c s E m p t y ( " " ) ;
CString c s F o r C o m m a n d ( " s e l e c t * f r o m Authors w h e r e a u t h o r = ' S i m p s o n , Alan'"); CString c s F o r C o m m a n d l ("select * f r o m Authors where author=Uones, Edward"'); / / И н и ц и а л и з а ц и я с л у ж е б н ы х п е р е м е н н ы х к л а с с а B S T R ,
/ / п р е д н а з н а ч е н н о г о д л я х р а н е н и я с п е ц и а л ь н ы х с т р о к B S T R b s F o r C o n n e c t = c s F o r C o n n e c t . A l l o c S y s S t r i n g ( ) ;
B S T R b s E m p t y = c s E m p t y . A l l o c S y s S t r i n g ( ) ; B S T R b s F o r C o m m a n d ;
if ( ! s t r c m p ( p a r , " / n a m e 1 " ) )
b s F o r C o m m a n d = c s F o r C o m m a n d . A l l o c S y s S t r i n g ( ) ; e l s e
658 |
Часть 4. Публикация баз данных в Интернете |
Вприведенном выше НТМ L-документе запросы отличаются параметрами "/name2" и "/namel". При выборе одной из ссылок ISAPI-модуль будет вызываться для генерации соответствующего НТМ L-документа.
ВISAPI-модуле при выборе первой ссылки будет выполняться соответствующая команда на языке Transact-SQL. Выбор требуемого действия реа-
лизуется с помощью условного оператора, в котором переменная b s F o r C o m m a n d инициируется с использованием функции A l l o c S y s S t r i n g ( ) , принадлежащей переменной c s F o r C o m m a n d или c s F o r C o m m a n d l в зависимости от значения переменной par:
C S t r i n g c s F o r C o m m a n d ( " s e l e c t * f r o m A u t h o r s w h e r e a u t h o r = ' S i m p s o n , A l a n ' " ) ;
C S t r i n g c s F o r C o m m a n d l ( " s e l e c t * f r o m A u t h o r s w h e r e a u t h o r = ' J o n e s , E d w a r d ' " ) ;
if ( ! s t r c m p ( p a r , " / n a m e l " ) )
b s F o r C o m m a n d = c s F o r C o m m a n d . A l l o c S y s S t r i n g ( ) ; e l s e
b s F o r C o m m a n d = c s F o r C o m m a n d l . A l l o c S y s S t r i n g O ;
При этом переменная par определяется следующим образом:
c h a r p a r [ 1 0 ] ; d w S i z e = 10;
p C t x t - > m _ p E C B - > G e t S e r v e r V a r i a b l e ( p C t x t - > m _ p E C B - > C o n n l D , ( l _ P S T R ) " P A T H _ I N F O " , ( L P V O I D ) p a r , & d w S i z e ) ;
s t r c a t ( r e s B u f f , p a r ) ;
Здесь функция G e t S e r v e r V a r i a b l e Q используется для получения значения системной переменной PATH_INFO, в которую сервер помещает текстовую строку, содержащую параметры URL-запроса, находящиеся после знака "/".
В переменной пл_рЕСВ содержится указатель на объект типа
E X T E N S I O N _ C O N T R O L _ B L O C K . Функция s t r c a t ( r e s B u f f , p a r ) выполня-
ет конкатенацию строк, при этом результат конкатенации будет помещен по адресу, находящемуся в первом аргументе. В переменной p C t x t находится указатель на контекст вывода; в выражении * p C t x t << _Т(раг); используется переопределенный оператор, пересылающий строку символов в контекст вывода.
В результате работы этого модуля в окно обозревателя при выборе ссылки
h t t p : / / l o c a l h o s t / s c r i p t s / m y . d l l / n a m e 1 будет загружен HTML-документ, вид
которого приведен на рис. 16.7.
При выборе второй ссылки в окне обозревателя будет находится текст, аналогичный приведенному на рис. 16.7, за исключением строки "Значение переменной PATH_INFO:/name2" и записи в таблице — "Jones, Edward 1952".
660 |
Часть 4. Публикация баз данных в Интернете |
10.Охарактеризуйте интерфейс ADO и приведите иерархию его объектов.
11.Как выполняется непосредственно соединение с источником данных при использовании интерфейса ADO?
12.Дайте общую характеристику интерфейсу программирования серверных приложений ISAPI.
13.Укажите назначение функции H t t p E x t e n s i o n P r o c ( ) и приведите ее прототип.
14.Назовите классы, используемые при разработке ISAPI-модуля.
15.Как выполняется получение переданных от обозревателя данных ISAPI-модулем?
16.Каким образом выполняется отправка данных ISAPI-модулем?
17.Выполнить разработку CGI-модуля, позволяющего шифровать передаваемые данные при использовании метода GET. Для шифрования можно применять произвольный алгоритм.
18.Выполнить разработку CGI-модуля, позволяющего шифровать передаваемые данные при использовании метода POST. Для шифрования можно применять произвольный алгоритм.
Литература
1. Дунаев С. Б. Технологии Интернет-программирования. СПб.: БХВ-Петербург,
2001.
2.Мещеряков Е. В., Хомоненко А. Д. Публикация баз данных в Интернете. СПб.: БХВ-Петербург, 2001.
3.Фролов А. В., Фролов Г. В. Базы данных в Интернете: практическое руководство по созданию Web-приложений с базами данных. М.: Издательско-торго- вый дом «Русская редакция», 2000.
1 7. Публикация БД с использованием XML |
661 |
17. Публикация БД с использованием XML
В главе рассматривается технология применения XML в качестве стандартного средства организации обмена данными при публикации БД в Интернете. Приводятся примеры программ, выполняющих передачу данных из базы данных в документ XML и обратно.
17.1. XML как средство обмена данными
Как отмечалось, расширяемый язык разметки XML (extensible Markup Language) представляет собой развитие языка HTML и по сравнению с ним обеспечивает ряд дополнительных возможностей. Главное отличие XML от HTML заключается в том, что с его помощью выполняется не только наполнение создаваемого документа содержанием с указанием разметки, а в основном определяется структура документа и типы хранимых в нем данных.
Напомним, что одно из достоинств XML состоит в том, что в разрабатываемых с его помощью документах описание структуры хранимых данных отделено от собственно данных. В связи с этим XML представляет собой удобное средство обмена данными между различными приложениями. Он позволяет обеспечить согласованный обмен данными между приложениями, в которых отличаются структура хранимых данных, например имена и типы полей.
Кроме того, с помощью XML мы можем упростить доступ к данным, хранимым в базах данных различных СУБД. Например, для доступа к данным персональных СУБД или табличного процесора Excel пользователю требуется установка соответствующих инструментальных средств. В этом случае можно создать активные серверные страницы (ASP) или сценарии на языке JScript или VBScript, которые выполняют извлечение данных из базы данных и помещение их в документ XML.
Информацию из полученного таким образом документа XML можно легко использовать в других приложениях или отображать на страницах HTML. Таким образом, полученные в результате данные становятся доступными для всех пользователей, имеющих обозреватель, независимо от наличия или отсутствия СУБД или табличного процессора.
Документы XML могут использоваться на стороне клиента и на стороне сервера. Возможности работы с документами XML на стороне клиента в на-
стоящее время сдерживаются в основном отсутствием соответствующих инструментальных средств. Не все обозреватели предоставляют возможность
662 |
Часть 4. Публикация баз данных в Интернете |
просмотра и работы с документами XML, но в современных продуктах такая возможность уже имеется. В частности, возможность просмотра ХМL-доку- ментов обеспечивается Internet Explorer, начиная с версии 4.0, а также Netscape Navigator 5.0 и выше.
При работе с документами XML на стороне сервера привлекаются язы-
ковые средства, обычно применяемые для расширения возможностей сервера, такие как Java и JScript. Отметим также, что последние версии современных систем программирования, ориентированных на разработку приложений Web, также имеют средства поддержки создания и обработки документов XML. В частности, соответствующие средства имеются в составе JBuilder 4.0.
В качестве причин и достоинств обработки данных ХМL-документа на сервере можно отметить следующее:
•обработка данных на сервере обязательно требуется при запуске кода, размещенного на сервере. В частности, при извлечении информации из базы данных;
•во вторых, обработка данных на сервере позволяет устранить необходимость использования обозревателей, например Internet Explorer 5.0, поддерживающих обработку XML-документов. Можно предположить, что со временем все большее число обозревателей будет поддерживать такую обработку.
Один из недостатков обработки данных на сервере связан с тем, что при
необходимости внесения каких-либо изменений в формируемом документе клиента ему требуется обращаться за помощью к серверу, создавая тем самым дополнительную нагрузку.
При выполнении обработки данных на стороне клиента необходимость
обращения к серверу пропадает и можно выполнять требуемые изменения с помощью сценариев или динамического HTML.
17.2. Создание и обработка XML-документов
Для создания и обработки ХМ L-документов используются разнообразные инструментальные средства. В частности, для создания документа XML и со-
ответствующего ему файла DTD определения типа документа можно воспользоваться редактором XML. Для этой цели можно также воспользоваться любым текстовым редактором или процессором, например WordPad или Word. В последних случаях нужно иметь в виду, что файл XML является текстовым файлом с расширением xml и при сохранении его нужно задавать именно текстовый формат.
Создание XML-документов можно выполнять также путем преобразования уже имеющихся документов других приложений. Очевидно, что проще