Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009

.pdf
Скачиваний:
4975
Добавлен:
14.05.2016
Размер:
14.64 Mб
Скачать

18. Публикация БД средствами Microsoft Access

703

стве ответа обозревателю, для демонстрации возможностей технологии IDC/ НТХ, генерируется НТМ L-документ с информацией о переменных сервера.

Файл form.htx содержит следующий текст:

<H T M L >

<H E A D X / H E A D >

<B O D Y >

З а п р о с в ы п о л н е н ! < В Р > З н а ч е н и я с и с т е м н ы х п е р е м е н н ы х : < В Р >

М е т о д п е р е д а ч и д а н н ы х : < % R E Q U E S T _ M E T H O D % X B R > < % i f R E Q U E S T _ M E T H O D C O N T A I N S " P O S T " % >

Д л и н а д а н н ы х , п е р е д а в а е м ы х ч е р е з п о т о к :

<% C O N T E N T _ L E N G T H % X B R >

Ти п д а н н ы х :

<% C O N T E N T _ T Y P E % X B R >

<% e l s e % >

Д а н н ы е п е р е д а н н ы е м е т о д о м < % R E Q U E S T _ M E T H O D % > :

<% Q U E R Y _ S T R I N G % X B R >

<% e n d i f % >

В е р с и я п р о г р а м м н о г о о б е с п е ч е н и я с е р в е р а : < % S E R V E R _ S O F T W A R E % X B R >

В и р т у а л ь н ы й п у т ь : < % S E R V E R _ N A M E % X B R >

<A h r e f = " j a v a s c r i p t : h i s t o r y . b a c k ( ) " > " Н а з а д " < / А >

</ B O D Y >

</ H T M L >

Вприведенном файле для вывода значений переменных сервера используются специальные теги < % И м я п е р е м е н н о й % > . Например, для

вывода значения переменной R E Q U E S T _ M E T H O D используется строка

< % R E Q U E S T _ M E T H O D % > .

Конструкция

< % i f R E Q U E S T M E T H O D C O N T A I N S " P O S T " % >

<% e l s e % >

<% e n d i f % >

служит для вывода значений различных переменных сервера в зависимости от используемого метода передачи данных.

В конце файла form.htx находится ссылка с помощью, которой выполняется возврат на главную страницу Web-приложения:

< А h r e f = " j a v a s c r i p t : h i s t o r y . b a c k ( ) " > " Н а з а д " < / А >

704

Часть 4. Публикация баз данных в Интернете

Таким образом, первая группа интерфейсных элементов вместе с IDC/ НТХ-фай лами обеспечивает выполнение запроса на добавление записей в БД.

При этом для выполнения запроса нужно заполнить все четыре поля и нажать кнопку «Добавить строку в БД». При этом сервер обрабатывает запрос обозревателя и в случае успешного выполнения возвращает HTML-страни- цу, вид которой в окне обозревателя показан на рис. 18.14.

J Файл Драила Дид Избранное

CgpBMC ; Справка

П

 

 

 

J—

I

Запрос выполнен!

 

' "

З

Значения системных переменных:

 

 

 

Метод передачи данных: POST

 

 

 

Длина данных, передаваемых через шток: 126

 

 

Тип данных: applkatioiJx-wwTV-foim-urlencoded

 

 

Версия программного обеспечения сервера: Microsoft-PWS-95/2.0

 

 

Виртуальный путь: localhost

 

 

 

"Назад"

 

 

z l

 

 

 

Готово

Местнаяинграёеть

 

 

Рис. 18.14 Окно обозревателя с результатом обработки файла form.idc

В указанном окне (рис. 18.14) сначала выводятся значения переменных, заполняемых сервером при использовании метода передачи данных POST. Это переменные CONTENT_LENGTH и CONTENT_TYPE. Кроме того, независимо от метода передачи данных выводятся значения переменных REQUEST_METHOD, SERVER_SOFTWARE и SERVER_NAME.

Вторая группа интерфейсных элементов главной страницы приложения содержит два поля с именами del, dell, предназначенные для ввода параметров запроса, с помощью которого удаляется строка из БД. Кроме того, к этой группе относится кнопка с именем b_del и значением «Удалить строку из БД». Второй группе интерфейсных элементов приложения соответствуют следующие строки текста главной страницы приложения:

CINPUT TYPE="text" NAME="del">: :<INPUT TYPE="text" NAME="del 1 " X BR>

cinput type=button value="yAannTb строку из БД" NAME="b_del" onGlick="location='http://localhost/Scripts/

bcxDks_del.idc?Book='+fbrm1 .del^ue^'SProc^Tinr^'+fbrnil .dell .value"><BR><p>

18. Публикация БД средствами Microsoft Access

705

Кнопка с именем b _ d e l служит для запуска обработчика запроса обозревателя к серверу. В нашем случае в качестве обработчика выступает файл, загружаемый по следующему URL:

" 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 "

Для загрузки этой страницы используется следующий код на JavaScript:

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 .value"

Этот код выполняется при обработке события o n C l i c k , возникающего при нажатии на кнопку с помощью мыши. Здесь объекту location присваивается новый URL, что приводит к загрузке сервером требуемого обработчика.

При этом к URL " 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 " с помощью кон-

катенации строк добавляется подстрока с передаваемыми параметрами запроса с использованием метода GET

" + 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 . d e l 1 . v a l u e "

Здесь код f o r m l . d e l . v a l u e и f o r m l . d e l 1 . v a l u e

возвращают содержимое

поля d e l и d e l l соответственно. Параметры B o o k

и P r o d u c t T i m e совпада-

ют с названиями столбцов БД и содержат название книги и год издания соответственно.

Обработчик "books_del.idc" является IDC-файлом, который содержит параметры соединения с источником, SQL-запрос для удаления строк из БД, ссылку на используемый НТХ-шаблон и другие параметры. Файл "books_del.idc" содержит следующий текст:

С о д е р ж и м о е ф а й л а " B o o k s _ d e l . i d c " : 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 ^ o r m . h t x

R e q u i r e d P a r a m e t e r s : B o o k , P r o d u c t T i m e

S Q L S t a t e m e n t : D E L E T E * F R O M [ B o o k s ] W H E R E B o o k = ' % B o o k % ' A N D P r o d u c t T i m e = % P r o d u c t T i m e %

В приведенном тексте строка SQLStatement задает SQL-запрос на удаление записи из БД:

D E L E T E * F R O M [ B o o k s ] W H E R E B o o k = ' % B o o k % ' A N D

P r o d u c t T i m e = % P r o d u c t T i m e %

В этой строке подстрока

B o o k = ' % B o o k % ' A N D P r o d u c t T i m e = % P r o d u c t T i m e %

определяет выбор строки из БД по совпадению значений полей (подстроки " В о о к = " и " P r o d u c t T i m e = " ) в базе данных и значений передаваемых пара-

23 Зак. 541

706

Часть 4. Публикация баз данных в Интернете

метров запроса B o o k и P r o d u c t T i m e ,

подставляемых вместо специальных

I D C - к о м а н д % В о о к % и % P r o d u c t T i m e % .

Строка

R e q i i r e d P a r a m e t e r s : B o o k , P r o d u c t T i m e

указывает обязательные параметры, которые должны передаваться обозревателем серверу в запросе.

СтрогаT e m p l a t e : f o r m . h t x указывает серверу, что в качестве шаблона будет использоваться файл form.htx. Этот файл используется для генерации файла, возвращаемого в ]сачестве ответа обозревателю на запрос, аналогично предыдущей группе интерфейсных элементов. Единственное отличие заключается в том, что здесь при вызове обработчика для передачи данных используется метод GET (рис. 18.15).

 

/ l o c a l h o s l / S c i i p l s / b o o k s _ d e l . i d c ? B o o k = B a 3 b i %20aaHHbix & P i o d u c t . . .

| Файл

Правка Вид Избранное Сервис Справка

Адрес

ffi hHp: //localhost/S cripts/books_del. idc?B оок=Б a3bi%2QflaHHbix8(Produ ft

Запрос выполнен!

Значения системных переменных: Метод передачи данных: GET

Данны; переданные методом GET: Book=Ba3H%20flaHHbix&ProductTiine=1999 Версия программного обеспечения сервера: Microsoft-PWS-95/2.0 Виртуальный путь: localhost

"Назад:"

® Готово

Местная инграсеть

P f ПИ1

Переход

ЧК j

//

Рис. 18.15. ОКНО обозревателя с результатом обработки файла books del.idc

В соответствии с изложенным в результирующий HTML-документ выводятся значения переменных сервера ( R E Q U E S T M E T H O D и Q U E R Y _ S T R I N G ) , заполняемые при использовании метода GET:

Д а н н ы е , п е р е д а н н ы е м е т о д о м < % R E Q U E S T _ M E T H O D % > : < % Q U E R Y _ S T R I N G % X B R >

Таким образом, вторая группа интерфейсных элементов вместе с I D C / НТХ-файлами обеспечивает выполнение запроса на удаление записей из БД. При этом для выполнения запроса нужно заполнить два текстовых поля и нажать кнопку «Удалить строку в БД».

Третья группа интерфейсных элемейтов главной страницы приложения содержи! одно поле с именем year, предназначенное для ввода параметра запроса, с

18. Публикация БД средствами Microsoft Access

707

помощью которого находится строка в БД. Поиск строки в БД осуществляется по полю, содержащему год издания. Кроме того, к этой группе относится кнопка

с именем b _ year, имеющая значение « В ы п о л н е н и е п о и с к а с т р о к и в Б Д ».

Третьей группе интерфейсных элементов приложения соответствуют следующие строки текста главной страницы приложения:

C I N P U T T Y P E = " t e x t " N A M E = " y e a r " X B R >

< i n p u t t y p e = b u t t o n у а 1 и е = " В ы п о л н е н и е п о и с к а с т р о к и в Б Д " N A M E = " b _ y e a r "

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 " > < B R > < p >

Кнопка с именем Ь_уеаг служит для запуска обработчика запроса обозревателя к серверу. В этом случае в качестве обработчика выступает файл, загружаемый по следующему URL:

" 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 "

Для загрузки этой страницы используется следующий код на JavaScript

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 .year, v a l u e "

Он выполняется при обработке события o n C l i c k , возникающего при нажатии на кнопку с помощью мыши. В этом коде объекту location присваивается новый URL, что приводит к загрузке сервером требуемого обработчика " b o o k s _ 1 .idc".

При этом к URL " 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 " с помощью кон-

катенации строк добавляется подстрока с передаваем параметром запроса с использованием метода GET:

P r o d u c t T i m e = ' + f o r m 1 .year, v a l u e

в которой код f o r m l . y e a r . v a l u e возвращает содержимое поля year.

Содержимое файла "books_1 .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 : B o o k s _ 1 . h t x

R e q u i r e d P a r a m e t e r s : P r o d u c t T i m e

S Q L S t a t e m e n t : S E L E C T * F R O M [ B o o k s ] w h e r e

P r o d u c t T i m e = % P r o d u c t T i m e %

При этом строка SQLStatement задает SQL-запрос на выборку записи из БД:

S E L E C T * F R O M [ B o o k s ] w h e r e P r o d u c t T i m e = % P r o d u c t T i m e %

Здесь подстрока

P r o d u c t T i m e = % P r o d u c t T i m e %

определяет требуемую для выборки БД строку.

B o o k s _ 1 . h t x

708

Часть 4. Публикация баз данных в Интернете

Строка

 

T e m p l a t e : B o o k s _ 1

. htx

указывает серверу, что в качестве шаблона будет использоваться файл B o o k s _ 1 .htx. Этот файл используется сервером для формирования в виде таблицы данных, получаемых в результате выполнения запроса:

Файл содержит следующий текст:

<H T M L >

<H E A D >

<T I T L E > A I I _ T y p e s < / T I T L E >

</ H E A D >

<B O D Y >

C T A B L E B O R D E R = 1 > < C A P T I O N X B > B o o k s < / B X / C A P T I O N >

<T H E A D X T R >

<T H > N u m _ B o o k s > < / T H >

<Т Н > В о о к < Д Н >

<T H > P r o d u c t T i m e < / T H >

<T H > P r i c e < / T H >

<T H > S t r N u m < / T H >

</ T R X / T H E A D >

<T B O D Y >

<% B e g i n D e t a i l % >

<T R V A L I G N = T O P >

<T C X % K o f l B o o k s % X B R X / T D >

<T D X % B o o k % X B R X / T D >

< T C A L I G N = R I G H T X % P r o d u c t T i m e % X B R X / T D >

<T D A L I G N = R I G H T X % P r i c e % X B R X / T D >

<T D A L I G N = R I G H T X % S t r N u m % X B R X / T D >

</JR>

<% I E n d D e t a i l % >

<B R >

<A h r e f = " j a v a s c r i p t : h i s t o r y . b a c k ( ) " > " H a 3 a A " < / A >

</ T B O D Y >

<T F O O T X / T F O O T >

<Д А В 1 _ Е >

</ B O D Y >

</ H T M L >

Основной особенностью этого файла является наличие в нем следующего кода, задающего тело таблицы:

<T E ! O D Y >

<% B e g i n D e t a i l % >

18. Публикация БД средствами Microsoft Access

709

<T R V A L I G N = T O P >

<T D > < % K o A B o o k s % X B R X / T D >

<T D X % B o o k % X B R X / T D >

<T D A L I G N = R I G H T X % P r o d u c t T i m e % X B R X / T D >

<T D A L I G N = R I G H T X % P r i c e % X B R X / T D >

<T D A L I G N = R I G H T X % S t r N u m % X B R X / T D >

</ T R >

<% E n d D e t a i l % >

Использование специальных тегов < % B e g i n D e t a i l % > . . . < % E n d D e t a i l % > задает для сервера цикл на заполнение строк таблицы. При этом переход от текущей строки таблицы к следующей выполняется автоматически. Таким образом, в результате обработки этого кода сервер многократно формирует строки таблицы в зависимости от количества строк в результирующем наборе данных.

Специальные теги < % K o f l 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 % > используются для указания серверу мест вывода значений соответствующих полей из записей БД.

В конце файла Books l.htx находится ссылка

< А h r e f = " j a v a s c r i p t : h i s t o r y . b a c k ( ) " > " H a 3 a A " < / A >

С ее помощью выполняется возврат на главную страницу Web-приложения. Таким образом, третья группа интерфейсных элементов вместе с IDC/HTXфайлами обеспечивает выполнение запроса на выборку записей из БД. При этом для успешного выполнения запроса нужно заполнить текстовое поле, задающее

год издания книги, и нажать кнопку «Выполнение поиска строки в БД ». Например, при задании в текстовом поле year значения 2000 (рис. 18.13) и

нажатии на кнопку Ь_уеаг в окне обозревателя будет выведен текст, представленный на рис. 18.16.

На этом рисунке выведена одна строка, так как приведенному в запросе параметру в БД соответствует только одна строка, удовлетворяющая условию поиска.

Четвертая группа интерфейсных элементов главной страницы приложения содержит следующую ссылку:

< А

h r e f = " h t t p : / / I о с a l h o s t / S c r i p t s / A I l _ t y p e s _ 1 ^ с " > " П р о с м о т р с о д е р -

ж и м о г о в с е й Б Д " < / А >

Эта ссылка

передает серверу запрос на обработку IDC-файла

A l l _ t y p e s _ 1 . i d c

и ссылка служит для получения всех записей из БД. Файл

" A l l _ t y p e s _ 1 . i d c " содержит следующий код:

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 : B o o k s _ 1 . htx

S Q L S t a t e m e n t : S E L E C T * F R O M [ B o o k s ] С л е д у ю щ а я с т р о к а в э т о м ф а й л е

S Q L S t a t e m e n t : S E L E C T * F R O M [ B o o k s ]

710

Часть 4. Публикация баз данных в Интернете

 

.II Types - Microsoft Internet Explorer

НПшТЕЗ

J

Файл

Правка

йид

Избранное Сервис

Справка

J йдрес

http://localhost/Scripts/books_1.idc?ProductT ime=2000 г | ^ Переход

 

'I- азад"

 

 

Books

 

 

 

 

 

 

 

 

[ N M I J O O M

Book

|PioduclTii»>e| Price

 

 

 

1 С++ language

2000 160.0000

869

И

ОТОВО

 

 

 

Местная инграсегь

Рис. 18.16. Окно обозревателя с результатом обработки файла books l.idc

Приведенный код определяет запрос на выборку всех записей из БД. Строка

T e m p l a t e : B o o k s _ 1 .htx

указывает серверу, что для формирования результирующего HTML-доку мента будет использоваться тот же файл шаблона, что и в предыдущем случае.

На рис. 18.17 представлены результаты обработки запроса сервером на получение всех строк БД, выводимых в виде таблицы.

Таким образом, мы рассмотрели пример работы по технологии IDC, обеспечив при этом операции добавления, удаления и поиска строк, а также просмотра всего содержимого базы данных.

18.4. Статические файлы HTML

Пуб.оизсация содержимого БД с использованием статических HTML-страниц является самым простым способом распространения информации из БД в Интернете. При этом для отображения содержимого таблиц, запросов или форм генерируется статическая HTML-страница Эта страница, как правило, не включает интерфейсные элементы, а основным ее содержимым является статический образ информации из базы данных, представленной в таблице, запросе или форме.

Как отмечалось, статические файлы HTML создаются путем экспорта соответствующих объектов баз данных (таблиц, запросов, форм и отчетов), из которых они создаются.

Публикацию файлов статических HTML-страниц можно выполнить в папках Web или на Web-cepeepe. Для публикации статических HTML-страниц в папках Web достаточно выполнить копирование в них соответствующих файлов с помощью Проводника Windows.

18. Публикация БД средствами

Microsoft Access

 

 

 

 

 

711

Файл

Древка Вид

Избранное

Сервис

Справка

 

 

 

Йдрес H Q

http: //localhost/S cripls/AII_types_1. idc

 

 

 

• |

(^Переход

 

 

 

"Назад"

 

 

 

 

 

 

 

 

 

 

 

 

Books

 

 

 

 

 

 

W i i t B o o M

 

Book

|PioduclTime| Piice

IStiNum

 

 

1

С++ language

 

2000

160

.0000

869

 

 

6

Публикация Б Д

 

2001

330.0000

100

 

 

7

Публикация Б Д в Интернет

2001

330

.0000

100

 

 

8

C++Builder

 

 

2001

123

.0000

111

 

 

9

TurboPascal

 

1998

123

.0000

111

 

 

14

Основы JavaScript

 

1998

250

.0000

50

 

 

15

Язык Java

 

 

1999

234

.0000

123

 

 

 

 

 

 

 

 

 

 

d

Готово

 

 

 

 

(Hi Местная инграсеть

^

Рис. 18.17 Окно обозревателя с результатом обработки файла All

types.idc

Для публикации статических HTML-страниц на Web-cepeepe требуется скопировать соответствующие файлы HTML и сопутствующие файлы (рисунки и стили) и папки в папку корневого каталога этого сервера с помощью Проводника. Напомним, что стандартными корневыми каталогами являются \Webshare\Wwwroot для Personal Web Server и \Inetpub\Wwwroot для Microsoft Internet Information Server.

Пример 1. Статическая публикация данных из отчета.

Рассмотрим статическую публикацию данных из отчета Список товаров, содержащегося в базе данных Борей СУБД Access 2000. Для решения поставленной задачи выполним следующие действия:

В окне базы данных выберем имя отчета Список товаров, который нужно экспортировать, и в меню Файл (File) зададим команду Экспорт (Export).

В открывшемя окне в поле Тип файла (File Туре) выберем требуемый вариант Документы HTML (*.html, *.htm).

Выберем диск и папку, в которую будет экспортирован отчет в виде статического файла HTML.

В поле Имя файла (File Name) введем имя файла и нажмем кнопку Сохранить (Save).

В диалоговом окне Параметры вывода в формате HTML (Output Options in HTML Format) укажем имя и местоположение шаблона,

712

Часть 4. Публикация баз данных в Интернете

с использованием которого будет выполняться просмотр сформированного файла HTML в окне обозревателя.

В результате выполненных действий будут сформированы пять HTMLстраниц, содержащие информацию из экспортируемого нами отчета. Вид первой из названных страницу в окне обозревателя Internet Explorer показан на рис. 18.18.

Список товаров по алфавиту

01^апо-2001

А

Марка:

Категория:

Единица

На складе:

измерения:

 

 

 

 

Aniseed Syrup

Приправы

12 бутылок по 550 мл

23

Марка:

Категория:

Единица

На складе:

измерения:

 

 

 

 

Eioston Crab Meat

Рыбопродукты

24 банки по 125 г

 

123

Jp Мой компьютер

Рис. 18.18. Вид сформированной HTML-страницы в окне обозревателя

Исходный код сформированной нами статической HTML-страницы приведен на рис. 18.19.

Шаблон HTML представляет собой текстовый файл, включающий теги и описатели HTML, являющиеся уникальными для Microsoft Access. Эти описатели указывают места для вставки выходных и других сведений в статические или генерируемые сервером файлы HTML.

При выводе таблицы, запроса, формы или отчета с указанием файла шаблона HTML в связанном диалоговом окне Параметры вывода (Output Options) Microsoft Access объединяет шаблон HTML с выходными файлами

.HTML, .ASP, и .НТХ, заменяя описатели как показано в таблице 18.1.

Для публикации файлов статических HTML-страниц в папке Web выполним копирование в нее соответствующих файлов с помощью Проводника Windows.