Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009
.pdf18. Публикация БД средствами Microsoft Access |
693 |
•В очередном диалоговом окне укажем имя файла (Продажипокатегориям) для сохранения созданной страницы доступа к данным.
•Выполним собственно публикацию страницы доступа к данным на Web-cep- вере. Для этого с помощью Проводника Windows скопируем соответствующий созданной странице файл HTML, а также все сопутствующие файлы
(рисунки, таблицы стилей) и папки в папку корневого каталога Web-cepBepa. Созданную описанным способом страницу доступа к данным можно просматривать и настраивать в среды СУБД Access, а также просматривать с по-
мощью обозревателя, обращаясь к странице на сервере.
18.3. Серверные страницы
Серверные страницы представляют собой файлы ASP или IDC/HTX, ко-
торые создаются на основе таблиц, запросов или форм и подключаются к источнику данных ODBC или ADO соответственно. При их обработке с помощью Internet Information Server происходит динамическое создание файлов HTML. Отображаемые в полученных таким образом файлах HTML данные доступны только для чтения. Соответствующие им Web-страницы выводятся на экран в табличном формате в любом обозревателе Web.
Для экспорта таблицы, запроса или формы в генерируемый сервером формат HTML нужно выполнить следующие действия:
•В окне базы данных выбрать имя таблицы, запроса или формы, которую нужно экспортировать, и в меню Файл (File) задать команду Экспорт (Export).
•В открывшемя окне в поле Тип файла (File Туре) выбрать требуемый вариант Microsoft IIS 1-2 (*.htx;*.idc) или Microsoft Active Server Pages (*.asp)(pnc. 18.11), в зависимости от нужного генерируемого сервером формата.
•Выбрать диск и папку, в которую будет экспортирован объект.
•В поле Имя файла (File Name) ввести имя файла и нажать кнопку Сохранить (Save).
•Ввести сведения в диалоговых окнах Настройка вывода файлов ASP (Customize Output File ASP) или Настройка вывода файлов НТХ и IDC (Customize Output File НТХ/ГОС)(рис. 18.12).
•В поле Шаблон HTML (Template HTML) ввести местоположение шаблона HTML.
•В поле Название источника (Data Source) ввести имя источника данных ODBC, к которому будет производиться подключение при обработке генерируемых сервером файлов HTML на Web-cepBepe.
•В базе данных Microsoft Access указать в полях вход под именем (Username) и пароль (Password) имя пользователя и пароль системы защиты на уровне пользователей для разрешения доступа к базе данных
694 |
Часть 4. Публикация баз данных в Интернете |
Microsoft Access с Web-страницы. По умолчанию будут действовать имя пользователя Admin и пустой пароль.
Экспорт объекта: Запрос "Выбор счета' как |
|
|
•эта: 111 My Documents |
"3 «-'.сЫЛ* йЁц- с«рвис •» |
|
|
Мои рисунки |
|
@ Клиенты, htx |
|
|
0 |
Клиенты, ЮС |
|
0 |
СотруднMKH_htx,htx |
|
|**| Сотру дники_ЬЬх.ЮС
^ ф в и л а : ' ^|Выбор счета |
|
|
|
|
|
|
|
( Н |
saxpqwrb |
| |
|
|
|
|
|
|
|
|
|
|
|||
1ипфайяэ> |
|
|
|
|
|
|
|
|
|
Отмена |
|
Рис. 18.11. Вид окна экспорта объекта |
|
|
|
|
|||||||
Н а с т р о й к а в ы в о д а ф а й л о в Н Т Х и I D C |
|
|
|
|
|
В Е З |
|
||||
Ш а б л о н HTML: |
| |
о |
б |
з |
о |
р |
, |
. |
. |
[ |
|
- С в е д е н и я об источнике данных - — — — — — " — — . |
. . • ' — — — |
|
|
|
|
||||||
название источника! |
j С о т р у д н и к и |
|
|
|
|
|
|
|
|
||
а х о д под именем: |
] |
|
|
|
|
|
|
|
|
|
|
пароль: |
J |
|
|
|
|
|
|
|
|
|
|
|
|
|
OK |
| |
Отмена |
|
j |
|
|
|
|
Рис. 18.12. Вид окна Настройка вывода файлов НТХ и IDC
•В проекте Microsoft Access в полях Username (Имя пользователя) и Password (Пароль) ввести имя пользователя и пароль, чтобы разрешить пользователям подключаться к базе данных Microsoft SQL Server с Web-страницы. По умолчанию будут действовать имя пользователя Sa и пустой пароль.
18. Публикация БД средствами Microsoft Access |
695 |
Чтобы экспортированная в формат ASP или IDC/HTX таблица (запрос или форма) была доступна пользователям Интернета, необходимо опубликовать ее. Для этого нужно выполнить следующее:
•Установить программное обеспечение (Microsoft Internet Information Server или Personal Web Server) на компьютер, используемый в качестве Web-cep- вера и выполняющий обработку генерируемых сервером файлов HTML.
• Создать в корневом каталоге папку для хранения файлов ASP или I D C / H T X ( \ W e b s h a r e \ W w w r o o t для Personal Web Server и \Inetpub\Wwwroot для Microsoft Internet Information Server).
•Установить привилегии доступа к этой папке: Выполнение для Windows NT 4.0 и выше; Выполнение сценариев для Windows 9х.
•Скопировать в созданную папку файлы ASP или IDC/HTX и все сопутствующие файлы (рисунки, связанные файлы и папки, в которых содержатся эти файлы).
•Скопировать базу данных Microsoft Access в созданную папку или ука-
зать ее расположение в сети при задании источника данных ODBC.
•Задать используемый источник данных ODBC в качестве системного источника данных на Web-cepeepe. Имя этого источника данных совпадает с введенным в соответствующее диалоговое окно Параметры вывода при выводе файлов ASP или IDC/HTX.
•При необходимости определить защиту базы данных для источника данных ODBC, сохранив возможность доступа пользователей к этому источнику. Имя пользователя и пароль должны совпадать со значениями, вводимыми в поля вход под именем (Username) и пароль (Password) диалоговых окон Параметры вывода файлов ASP (Options Output Files ASP) или Параметры вывода файлов HTX/IDC (Options Output Files HTX/IDC), которые отображаются при выводе файлов ASP или IDC/HTX.
При экспорте таблицы в формат ASP или IDC/HTX данные, видимые при отображении конечного файла .ASP или .НТХ в Web-обозревателе, являются фактическими данными набора записей, на котором основана таблица. По умолчанию Microsoft Access сохраняет текстовые поля и поля Memo с выравниванием по левому краю, а все остальные поддерживаемые тины данных с выравниванием по правому краю.
При выводе таблицы Microsoft Access не выводит объекты OLE или связанные значения из поля подстановок, а также игнорирует настройки свойств Порядок сортировки (OrderBy), Фильтр (Filter), Формат (Format) и Маска ввода (InputMask).
Характеристика IDC-технологии
Технология IDC свое название получила по имени приложения Internet Database Connector (IDC), входящего в состав Internet Information Server и обеспечивающего связь с драйвером ODBC. Это приложение оформлено в
18. Публикация БД средствами Microsoft Access |
697 |
< I N P U T T Y P E = " c h e c k b o x " N A M E = " m o d e m " V A L U E = " m o d e m " > 2 8 . 8 M o d e m < P >
C I N P U T T Y P E = " s u b m i t " V A L U E = " P l a c e O r d e r " >
При нажатии кнопки Place Order (Разместить заказ) введенная в форму информация передается на сервер, который откроет файл ORDER.IDC. Этот файл содержит команды, определяющие базу данных, шаблон .НТХ и запрос SQL. Ниже приведено содержимое файла ORDER.IDC для нашего примера:
D a t a s o u r c e :
O r d e r s T e m p l a t e : O r d e r t h x . h t x
S Q L S t a t e m e n t : I N S E R T n a m e . s t r e e t . c i t y . s t a t e . z i p . r a m . h d , m o d e m
Файл .IDC содержит три обязательные директивы. Директива D a t a s o u r c e
указывает базу данных, с которой происходит соединение. Директива T e m p l a t e определяет файл .НТХ, который должен использоваться для создания HTML-страницы, возвращаемой серверу и в итоге клиенту. Директива S Q L S t a t e m e n t содержит запрос, отправляющий введенную пользователем информацию в базу данных или получающий оттуда информацию.
Кроме обязательных, файл .IDC может содержать дополнительные дирек-
тивы, повышающие гибкость работы с HTTPODBC.DLL. Ниже описаны дополнительные директивы IDC.
Директива D e f a u l t P a r a m e t e r s используется для определения параметров по умолчанию, которые используются в случае, если пользователь не заполнил форму целиком. Например, для случая, когда пользователь по какой-то причине не ввел имя для поиска, можно предусмотреть следующую строку:
D e f a u l t P a r a m e t e r s : n a m e = % J o h n D o e % В т а к о й с т р о к е м о ж н о у к а з а т ь н е с к о л ь к о п а р а м е т р о в , р а з д е л е н н ы х з а п я т о й .
Директива R e q u i r e d P a r a m e t e r s позволяет указать обязательные для заполнения поля формы. Например, если требуется, чтобы обязательно были введены имя и адрес, нужно указать это следующим образом:
R e q u i r e d P a r a m e t e r s : n a m e , s t r e e t , city, s t a t e , z i p
Директива M a x F i e l d S i z e используется для указания максимальной длины записи. По умолчанию устанавливается длина, равная 8192 байта.
Директива M a x R e c o r d s позволяет определить максимальное число записей, возвращаемых в ответ на запрос. По умолчанию возвращаются все записи, удовлетворяющие условиям запроса. Однако это можно использовать только в небольших базах данных. Если база данных имеет значительные размеры, следует ограничить этот параметр разумной величиной с учетом типа информации.
Директива E x p i r e s определяет время (в секундах) до очистки кэш-памяти. Если ее не использовать, то обращение к базе данных происходит при каждом запросе информации. При использовании этой директивы ответ на за-
698 Часть 4. Публикация баз данных в Интернете
прос возвращается из кэш-памяти. Это позволяет уменьшить нагрузку системы и увеличить скорость получения информации.
Директива Username позволяет указать имя для доступа к SQL-серверу, если не используется встроенная система безопасности SQL-сервера.
Директива Password позволяет установить парольную защиту. При указании этой директивы требуется ввести имя пользователя.
Рассмотрим особенности построения файла с расширением .НТХ, который создает HTML-документ, возвращаемый клиенту. Как и IDC, файл НТХ имеет специальные команды или теги, которые помогают отформатировать страницу.
При обращении к базе данных сохранение возвращаемой информации выполняется с помощью тегов <%begindetail%> и <%enddetail%>. Предположим, что при просмотре каталога продукции вводится запрос для поиска информации о модемах, которая содержится в поле под именем modem. В этом случае можно создать следующий файл .НТХ для форматирования результата поиска:
<t a b l e >
<% b e g i n d e t a i l % >
<t r > < t d > < % m o d e m % x t d > < % p r i c e % > < / t d x / t r >
<% e n d d e t a i l % >
</ t a b l e >
Приведенный код открывается тегом <TABLE>. При совпадении запроса и записи создается строка, состоящая из названия модема и его цены. Тег < % e n d d e t a i i % > указывает на окончание этого раздела кода. Затем тег < / T A B L E > закрывает таблицу. Если ни одной записи не найдено, этот код пропускается.
Директива CurrentRecord подсчитывает количество обработок записей. Она может использоваться для проверки, сгенерированы ли в ответ на запрос какие-либо результаты, и для информирования пользователя об этом.
Внутри файла .НТХ можно употреблять следующие простые условные операторы: < % i f % > , < % e l s e % > и < % e n d i f % > . Они позволяют проверить выполнение каких-либо условий. Например, можно проверить, возвращены ли результаты поиска, если нет, проинформировать об этом пользователя:
<t a b l e >
<% b e g i n d e t a i l % >
<t r > < t d > < % m o d e m % x t d > < % p r i c e % > < / t d x / t r >
<% e n d d e t a i l % >
</ t a b l e >
< % i f C u r r e n t R e c o r d EQ 0 % >
T h e r e i s n ' t a n y t h i n g in t h e d a t a b a s e t h a t m a t c h e s y o u r q u e r y . < c e , r l t e r >
18. Публикация БД средствами Microsoft Access |
699 |
< а h r e f = " p r o d u c t s . h t m l " > [ P r o d u c t D a t a b a s e ] < / a > < / c e n t e r >
Тег < % i f % > для проверки информации может использовать четыре условия. С помощью условия EQ проверяется равенство:
< % i f m o d e m E Q " U S R o b o t i c s " % > U S R o b o t i c s 2 8 . 8
<% e n d i f % >
Спомощью условия GT проверяется, больше ли одно значение другого:
< % i f p r i c e G T 5 0 0 % >
С помощью условия LT проверяется, меньше ли одно значение другого:
< % i f p r i c e LT 1 0 % >
Условие C O N T A I N S проверяет, содержится ли одно значение в другом:
< % i f m o d e m C O N T A I N S " R o b o t i c s " % > U S R o b o t i c s
< % e n d i f % >
Переменная M a x R e c o r d s содержит значение директивы M a x R e c o r d s :
< % i f C u r r e n t R e c o r d E Q M a x R e c o r d s % > R e s u l t s h a v e b e e n a b r i d g e d < % e n d i f % >
После заполнения пользователем формы HTML можно направить ее непосредственно в файл .НТХ посредством префикса idc. Например, для возврата пользователю введенной им информации, нужно указать такой код:
H e l l o % i d c . n a m d % . H o w is t h e w e a t h e r in % i d c . c i t y % , % i d c . s t a t e % ? < B R >
В файле .НТХ можно использовать переменные HTTP, которые размещают между символами <% и %>:
< % C u r r e n t R e c o r d % >
Для работы с файлами .НТХ удобно использовать программу Frontpage из состава пакета Microsoft Office.
Пример публикации по IDC-технологии
Для публикации БД воспользуемся Web-приложением, в состав которого входит главная HTML-страница (с которой начинается выполнение приложения), несколько файлов шаблонов с расширением НТХ и файлов запросов к БД с расширением IDC. Для запуска этого приложения использовался Microsoft Personal Web Server, работающий под управлением Windows 98. Файлы приложения размещены в каталоге c:\WebShare\Scripts, которому
700 Часть 4. Публикация баз данных в Интернете
соответствует виртуальный каталог с псевдонимом Scripts. Приложение рассчитано на работу в обозревателе, который поддерживает JavaScript (например, Microsoft Internet Explore 5.0).
Поясним содержимое и назначение каждого из названных файлов. Главная страница приложения — HTML-страница с именем "my.html" используется для начала работы с приложением, организации взаимодействия между файлами приложения и ввода параметров запроса. Указанная HTML-стра- ница содержит следующий текст:
<H T M L >
<H E A D >
< Т 1 Т 1 _ Е > П р и м е р и с п о л ь з о в а н и я т е х н о л о г и и I D C < / T I T L E >
</ H E A D >
<B O D Y >
< B 2 > < C E N T E R > n p H M e p и с п о л ь з о в а н и я т е х н о л о г и и Ю С С / C E N T E R X / B X P >
< F O R M n a m e = f o r m 1 A C T I O N = " h t t p : / / l o c a l h o s t / S c r i p t s / f o r m . i d c " M E T H O D = " P O S T " >
Д л я д о б а в л е н и я н о в о й с т р о к и в Б Д н е о б х о д и м о з а п о л н и т ь с л е д у ю щ и е п о л я < В Р > и н а ж а т ь к н о п к у д о б а в и т ь : С В Р >
Н а з в а н и е : < I N P U T T Y P E = " t e x t " N A M E = " b o o k _ t i t l e " X B R >
Д а т а в ы п у с к а : C I N P U T T Y P E = " t e x t " N A M E = " b o o k _ d a t a " X B R >
К о л и ч е с т в о с т р а н и ц : C I N P U T T Y P E = " t e x t " N A M E = " b o o k _ n u m " > C B R > Ц е н а : C I N P U T T Y P E = " t e x t " N A M E = " b o o k _ p r i c e " X B R >
C I N P U T T Y P E = " S u b m i t " V a l u e = " f l o 6 a B H T b с т р о к у в Б Д " > C B R > C p >
Д л я у д а л е н и я с т р о к и и з Б Д н е о б х о д и м о в в е с т и н а з в а н и е к н и г и и г о д и з д а н и я : C B R >
C I N P U T T Y P E = " t e x t " N A M E = " d e l " > : : C I N P U T T Y P E = " t e x t " N A M E - " d e l 1 " X B R >
c i n p u t t y p e = b u t t o n v a l u e = " y f l a n n T b с т р о к у и з Б Д " N A M E = " b _ d e l " o n C l i c k = " l o c a t i o n = ' h t t p : / / l o c a l h o s t / S c r i p t s /
b o o k s _ d e l . i d c ? B o o k = ' + f o r m 1 . d e l . v a l u e + ' & P r o d u c t T i m e = ' + f o r m 1 . del 1 . v a l u e " > c B R X p >
Д л я в ы п о л н е н и я в ы б о р к и с т р о к и н е о б х о д и м о в в е с т и г о д и з д а н и я : C B R > C I N P U T T Y P E = " t e x t " N A M E = " y e a r " > C B R >
c i n p u t t y p e = b u t t o n у а 1 и е = " В ы п о л н е н и е п о и с к а с т р о к и в Б Д "
o n C l i c k = " l o c a t i o n = ' h t t p : / / l o c a l h o s t / S c r i p t s / b o o k s _ 1 . i d c ? P r o d u c t T i m e = ' + f o r m 1 . y e a r . v a l u e " > C B R > c p >
CA href="http://localhost/Scripts/AII _ types _ 1 . i d c " > " n p o c M O T p с о д е р ж и м о г о в с е й Б Д " с / А >
18. Публикация БД средствами Microsoft Access |
701 |
</FORM>
</BODY>
</HTML>
Вид рассматриваемой HTML-страницы в окне обозревателя приведен на
Р и с . |
18.13. |
|
|
1 |
П р и м е р и с п о л ь з о в а н и я технологии IDC |
- Microsoft Internet Expl... Я Г " 1 ЕЗ |
|
|
Файл |
Правка Вид Избранное Сервис |
Справка |
j Адрес |
C:\WEBSHARE\SCRIPTS\my.html |
• | ^Переход I |
Пример использования технологии IDC
Для добавления новой строки в БД необходимо заполнить следующие поля и нажать кнопку добавить:
Название: |Язык Java |
|
Дата выпуска: |1999 |
|
Количество страниц: 234 |
|
Цена: 123 |
|
Добавить строку в БД |
] |
Для удаления строки из БД необходимо ввести название книги и год издания:
[Язык SQL |
::[Т999 |
Удалить строку из БД
Для выполнения выборки строки необходимо ввести год издания:
[2000
Выполнение поиска строки в БД
"Просмотр содержимого всей БД"
Готово |
Мой компьютер |
Л |
Рис. 18.13. Вид главной HTML-страницы в окне обозревателя
Главная HTML-страница содержит одну форму, включающую ряд интерфейсных элементов, которые по назначению можно разделить на следующие четыре группы.
702 |
Часть 4. Публикация баз данных в Интернете |
Первая группа содержит четыре поля с именами booktitle, book_data, booknum, bookprice, предназначенные для ввода параметров запроса, с помощью которого добавляется строка в БД.
В эту же группу входит кнопка, имеющая тип "Submit" и значение "Добавить строку в БД". Эта кнопка служит для запуска обработчика запроса обозревателя к серверу. В качестве обработчика здесь выступает файл, загружаемый по следующему URL:
" h t t p : / / l o c a l h o s t / S c r i p t s / f o r m . i d c "
Последний записан в атрибуте тега формы:
< F O R M n a m e = f o r m 1 A C T I O N = " h t t p : / / l o c a l h o s t / S c r i p t s / f o r m . i d c " M E T H O D = " P O S T " >
Названный обработчик представляет собой IDC-файл, который содержит параметры соединения с источником, SQL-запрос на добавление строки к БД, ссылку на используемый НТХ-шаблон и другие параметры. Файл "form.idc" содержи! следующие строки текста:
D a t a s o u r c e : b o o k s _ i d c T e m p l a t e : f o r m . h t x
R e q u i r e d P a r a m e t e r s i b o o k ^ i t l e . b o o k j j a t a . b o o k j i u m . b o o k j D r i c e
S Q L S t a t e m e n t : I N S E R T I N T O B o o k s ( b o o k , P r o d u c t T i m e , P r i c e , S t r N u m ) v a l u e s
( ' % b o o k _ t i t l e % ' , ' % b o o k _ d a t a % ' , ' % b o o k _ n u m % ' , ' % b o o k _ p r i c e % ' )
Строка D a t a s o u r c e : b o o k s _ i d c з д е с ь (и в других IDC-файлах) указывает серверу псевдоним источника данных — "books idc", зарегистрированный в администраторе ODBC, связанный с базой данных в формате MS Access. В общем случае эта база данных может иметь формат любой СУБД с драйвером ODBC.
Строка S Q L S t a t e m e n t задает SQL-запрос на добавление записи в БД. В ней подстрока
( ' % b o o k _ t i t l e % ' , ' % b o o k _ d a t a % ' , ' % b o o k _ n u m % ' , ' % b o o k _ p r i c e % ' )
содержит специальные команды сервера, заключенные в символы "%". Внутри них помещаются имена параметров, передаваемых через HTTP-запрос. Вместо этих команд сервер подставляет значения параметров, переданных обозревателем серверу. Далее этот запрос передается функциям ODBC для выполнения.
Строка RequiredParameters:book_title,book_data,book_num,book_price ука-
зывает обязательные параметры, которые должны передаваться обозревателем серверу в запросе, и статические данные, которые непосредственно выводятся в выходной поток сервера.
Строка T e m p l a t e : f o r m . h t x указывает серверу, что в качестве шаблона будет использоваться файл form.htx. Этот файл используется для генерации возвращаемого файла в качестве ответа обозревателю на запрос. В нашем случае в результате выполнения запроса данные не возвращаются. При этом в каче-