Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Администрирование веб-узла.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
770.05 Кб
Скачать

1. Адрес url получен службами узла Web.

Адрес URL послан средством просмотра Web.

2. Службы узла Web загружают приложение Httpodbc.Dll и обеспечивают его необходимой информацией из адреса url.

Для обработки файлов с расширением IDC назначено приложение Httpodbc.dll. Приложение Httpodbc.dll получает имя файла Internet Database Connector (и другие параметры) из адреса URL, переданного службам узла Web.

3. Приложение Httpodbc.Dll читает файл Internet Database Connector.

Файл приложения Internet Database Connector содержит несколько записей в следующем формате:

поле: значение

В файле Sample.idc описан источник данных ODBC

Datasource: Web SQL

и файл расширения языка HTML

Template: sample.htx

Ниже содержание файла Sample.idc приведено полностью:

Datasource: Web SQL Username: sa Template: sample.htx SQLStatement: +SELECT au_lname, ytd_sales + from pubs.dbo.titleview + where ytd_sales>5000

В файле Sample.idc указано имя источника данных Web SQL. Параметры ODBC определяют порядок создания источника данных с таким именем.

Кроме того, в файле Sample.idc заданы:

  1. имя пользователя — действующее имя для входа в источник данных ODBC (в примере подключение осуществляется по учетной записи sa приложения Microsoft SQL Server);

  2. шаблон, который будет использоваться для возврата результатов;

  3. оператор языка SQL, описывающий запрос к базе данных.

Определения полей файлов Internet Database Connector см. ниже в разделе Описание средств Internet Database Connector.

Запрос SQLStatement в файле Sample.idc к базе данных Pubs на сервере SQL возвращает фамилии авторов, сумма продажи книг которых превысила с начала года 5000 долларов.

4. Приложение Internet Database Connector соединяется с источником данных odbc и выполняет оператор sql, содержащийся в файле idc.

Соединение с источником данных ODBC выполняется приложением Internet Database Connector, которое в этом примере загружает драйвер ODBC для сервера SQL и подключается к серверу, определенному в источнике данных. Как только соединение создано, запрос SQLStatement в файле приложения Internet Database Connector посылается драйверу ODBC, который в свою очередь передает запрос серверу SQL.

5. Приложение Internet Database Connector выбирает результаты из базы данных и объединяет их с файлом расширения языка html.

После выполнения оператора SQL приложение Internet Database Connector читает файл Sample.htx расширения языка HTML, указанный в файле Sample.idc. В файлах расширения языка HTML (файлах HTX) имеются специальные маркеры, используемые приложением Internet Database Connector для размещения результатов, возвращенных на запрос SQL.

6. Приложение Internet Database Connector посылает объединенный документ обратно службам узла Web, которые в свою очередь возвращают его клиенту.

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

Результирующая страница Web, отображаемая приложением Microsoft Internet Explorer, будет выглядеть следующим образом:

Изучение файла Sample.htx

Для передачи данных клиенту WWW приложение Internet Database Connector объединяет файл расширения языка HTML (файл HTX) и данные ODBC. Итоговый документ с стандартным заголовком HTTP (код 200 OK, поле Content-Type и т.д.) пересылается службе WWW и возвращается клиенту.

Файл HTX — это документ HTML с дополнительными командами (заключены в символы <%%> или <!--%%-->), используемыми для добавления динамических данных. Имеется шесть служебных слов (begindetail, enddetail, if, else, endif и %z) для разметки расположения результатов запроса к базе данных. Имена столбцов базы данных определяют данные, возвращаемые в документ HTML. Например, следующая строка в файле HTX добавляет данные из столбца Emailname для каждой обработанной записи:

<%begindetail%><%Emailname%><%enddetail%>

Файл Sample.htx содержит пример документа HTML с разметкой расположения результатов, возвращаемых из базы данных (команды выделены полужирным шрифтом).

Файл Sample.htx приведен с сокращениями.

<HTML> <BODY> <HEAD><TITLE>Авторы и объемы продаж за год</TITLE></HEAD> <%if idc.sales eq ""%>

<H2>Авторы с объемом продаж более <I>5000</I></H2> <%else%>

<H2>Авторы с объемом продаж более <I><%idc.sales%></I></H2> <%endif%>

<P> <%begindetail%> <%if CurrentRecord EQ 0 %>

Результаты запроса: <B>Автор Продажи за год (US$)<BR></B> <%endif%> <%au_lname%><%ytd_sales%> <%enddetail%> <P> <%if CurrentRecord EQ 0 %> <I><B>Отсутствуют авторы с объемом продаж больше </I><%idc.sales%>.</B> <P> <%else%>

<HR> <I> Эта страница Web получена в результате объединения результатов запроса SQL и шаблона Sample.htx. <P> Объединение выполнено приложением Microsoft Internet Database Connector; полученный документ передан этому средству просмотра службами узла Web корпорации Microsoft. </I> <%endif%>

</BODY> </HTML>

Команды <%begindetail%> и <%enddetail%> ограничивают раздел для размещения возвращаемых данных. Столбцы, из которых осуществляется выборка данных, заключены в символы <%%> (в этом примере <%au_lname%> и <%ytd_sales%>).

Описание средств Internet Database Connector

Приложение Internet Database Connector имеет ряд возможностей для создания страниц Web с результатами запроса к базе данных.

Файлы Internet Database Connector

Файлы приложения Internet Database Connector содержат информацию, используемую при обращении к базе данных. Следующий раздел описывает параметры файлов приложения Internet Database Connector.

Параметры

В предыдущем разделе показан самый простой запрос, полностью заданный в файле приложения Internet Database Connector. Более мощные страницы Web могут быть созданы с помощью параметров. Параметры представляют собой имена и значения элементов управления форм HTML, типа <INPUT…>, а также имена, указанные непосредственно в адресах URL. Эти имена и значения посылаются средствами просмотра Web и могут использоваться в операторах SQL на сервере.

Например, в последнем разделе запроса в Sample.idc возвращаются только авторы, реализация книг которых в течении года превысила 5000 долларов. Используя параметр, можно сформировать страницу Web, на которой пользователь решит, какое число ввести вместо 5000.

На странице Web пользователь вводит сумму реализации; введенная сумма присваивается переменной sales. Файл Dbsamp2.htm содержит форму с полем для ввода необходимого числа:

Ниже приведен синтаксис HTML для создания поля ввода и кнопки:

<FORM METHOD="POST" ACTION="/scripts/samples/sample2.idc"> <P> Введите объем продаж за год: <INPUT NAME="sales" VALUE="5000" > <P> <INPUT TYPE="SUBMIT" VALUE="Выполнить запрос"> </FORM>

Файл приложения Internet Database Connector (Sample2.idc) использует параметр вместо числа 5000:

SQLStatement: +SELECT au_lname, ytd_sales + from pubs.dbo.titleview + where ytd_sales > %sales%

Параметр имеет имя sales, что соответствует предложению <INPUT NAME= "sales" …> на странице Web. Параметры должны заключаться в символы процента (%) для отличия от обычных идентификаторов SQL. Когда приложение Internet Database Connector встретит параметр в файле IDC, оно подставит значение, посланное средством просмотра Web, и отправит оператор SQL драйверу ODBC.

Символ процента (%) является символом подстановки в SQL. Символы подстановки применяются в запросах SQL для поиска элементов таблицы, содержащих возможные комбинации символов. Чтобы отличать символ подстановки SQL от маркера языка HTML необходимо ввести символ % в следующем виде: %%. Например:

SQLStatement: +SELECT au_lname, ytd_sales, title + from pubs.dbo.titleview + where title like '%%%title%%%'

Символ процента для использования в качестве символа подстановки SQL введен дважды; кроме того, добавлены символы процента для разметки параметра. В примере, запрос ищет все записи, содержащие слово title в столбце title. Этот запрос возвращает следующее:

title title and deed main title page author and title

Чтобы отобрать все записи, начинающиеся со слова title, можно создать следующий запрос:

SQLStatement: +SELECT au_lname, ytd_sales, title + from pubs.dbo.titleview + where title like '%title%%%'

Запрос возвращает следующие данные:

title title and deed

Чтобы отобрать все записи, завершающиеся словом title, можно создать следующий запрос:

SQLStatement: +SELECT au_lname, ytd_sales, title + from pubs.dbo.titleview + where title like '%%%title%'

Запрос возвращает следующие данные:

title author and title

С помощью одного запроса можно сформировать наборы страниц Web со ссылками для запуска других запросов. Например, можно отформатировать имя автора как ссылку на новый запрос и использовать ее для вывода названий книг отдельного автора.

Например, документ Dbsamp3.htm служит для запуска запроса из файла Sample3.idc, который в свою очередь использует файл Sample3.htx в качестве шаблона вывода. После обработки запроса документ Sample3.htx содержит фамилии авторов в виде ссылок, по щелчку которых отображаются названия книг соответствующего автора с помощью файлов Sample3a.idc и Sample3a.htx.

Поля в файлах Internet Database Connector

Следующие таблицы содержат список полей, которые могут быть заданы в файле приложения Internet Database Connector. Параметры или переменные сервера могут находиться в любом месте файла IDC.

Обязательные поля в файле Internet Database Connector

Поле

Описание

Datasource

Имя системного источника данных ODBC, созданное с помощью приложения ODBC панели управления или средствами, входящими в состав примеров.

Template

Имя файла расширения HTML (файл HTX) для форматирования результатов запроса.

SQLStatement

Выполняемый оператор SQL. Оператор SQL может содержать значения параметров, которые должны заключаться в символы процента (%). Предложение SQLStatement может занимать несколько строк в файле Internet Database Connector. После строки с полем SQLStatement каждая новая строка, начинающаяся со знака плюс (+), считается частью поля SQLStatement. Один файл может содержать несколько предложений SQLStatements.

Необязательные поля в файле Internet Database Connector

Поле

Описание

DefaultParameters =

параметр=значение

[, параметр=значение]

[…]

Значение, используемое для определения параметра, если он не задан клиентом

Expires

Число секунд ожидания перед обновлением кэшированной выходной страницы. Если последующий запрос идентичен, кэшированная страница возвращается клиенту без обращения к базе данных. По умолчанию выходные страницы не кэшируются. Кэширование применяется при задании поля Expires.

MaxFieldSize

Максимальная длина поля приложения IDC; любые символы, превышающие эту длину, отбрасываются. Параметр применяется только к полям, возвращенным из базы данных. Значение по умолчанию 8192 байт.

MaxRecords

Максимальное число записей, возвращаемых по отдельному запросу. По умолчанию значение MaxRecords не установлено, что соответствует 4 миллиардам записей. Установите значение, чтобы ограничить число возвращаемых записей.

ODBCConnection

Служит для добавления соединения в группу, использующую открытый канал связи с базой данных для выполнения новых запросов. Приложение Internet Database Connector посылает запросы в базу данных, используя файлы IDC, содержащие переменные Datasource, Username и Password. С помощью этого параметра можно улучшить производительность Internet Database Connector. Кроме того, предусмотрено значение запрещающее добавление соединения в группу. Применяйте значение nopool для более тонкого управления кэшом подключений. Существует ограничение на число соединений в группе, препятствующее объединению всех соединений. Примечание. Чтобы применять группировку соединений по умолчанию, следует задать параметру системного реестра PoolIDCConnections значение 1. Дополнительные сведения см. в главе 10 Работа с данными системного реестра.

Password

Пароль, соответствующий имени пользователя. Если пароль не задан, это поле может быть пропущено.

RequiredParameters

Параметры (если они заданы) должны быть указаны клиентом; в противном случае будет возвращено сообщение об ошибке. Имена параметров отделяются с запятой.

Translationfile

Путь к файлу трансляции (содержит буквы типа а, ф или й), используемому средством просмотра при отображении документов в формате HTML. Если файл трансляции находится в каталоге, отличном от каталога файла IDC, необходимо указать полный путь к этому файлу. Синтаксис: Translationfile: C:\имякаталога\имяфайла. Используйте поле Translationfile при публикации базы данных на языке, отличном от английского. Файл трансляции является текстовым файлом и содержит кодировку символов в следующем формате: величина=строка<CR>, где величина — международный символ и строка — код трансляции HTML.

Username

Действующее имя пользователя для имени источника данных, указанное в поле Datasource.

Примечание. При использовании приложения Microsoft SQL Server с интегрированной функцией защиты поля имени и пароля в файле IDC игнорируются. Подключение к серверу SQL выполняется с помощью личных данных клиента службы Web (если они указаны в запросе). Для анонимного запроса имя и пароль пользователя определяются учетной записью анонимного пользователя (по умолчанию IUSR_имякомпьютера) в диспетчере служб Интернета.

Content-Type

Любой действующий тип MIME, описывающий тип возвращаемого клиенту документа. Для файла HTX на языке HTML, как правило, используется тип text/html.

Дополнительные необязательные поля ODBC

Дополнительные параметры ODBC позволяют отлаживать и настраивать драйвер ODBC, используемый приложением Internet Database Connector. Дополнительные сведения см. в документации на драйвер ODBC или в ODBC SDK (Software Development Kit). Формат, применяемый в файле IDC:

ODBCOptions: Имя параметра=Значение[,Имя параметра=Значение…]

Например, чтобы остановить выполнение запроса SQL, длящегося более 10 секунд, и разрешить трассировку вызовов функций ODBC, в файле IDC необходимо указать:

ODBCOptions: SQL_QUERY_TIMEOUT=10, SQL_OPT_TRACE=1, SQL_OPT_TRACEFILE=C:\Sql.log

Все параметры описаны в следующей таблице:

Аргумент

Значение

Назначение

SQL_ACCESS_MODE

0 =Чтение/запись

1 =Только чтение.

Указание драйверу ODBC или источнику данных о выполнении операторов SQL с запросами на обновление данных (соединение не требуется). Этот режим используется для оптимизации стратегий блокировки, управления транзакциями и изменения других параметров, предусмотренных в соответствующем драйвере или источнике данных. Драйвер не требуется для защиты операторов от влияния источника данных. Взаимодействие драйвера и источника данных при обработке в запросе на чтение операторов SQL, не являющихся операторами только чтения, определяется реализацией. По умолчанию параметр имеет значение 0, что соответствует разрешению не чтение и запись.

SQL_LOGIN_TIMEOUT

Целое

Число секунд ожидания перед прерыванием подключения. Значение по умолчанию зависит от драйвера и должно быть отлично от нуля. Если параметр равен 0, блокировка по времени отсутствует и длительность попытки соединения может быть произвольной. Если интервал ожидания превышает интервал времени, указанный в источнике данных, драйвер использует значение из источника данных.

SQL_OPT_TRACE

0 = Трассировка выключена

1 = Трассировка включена

При включенной трассировке, каждое обращение к функции ODBC, сделанное из приложения Httpodbc.dll, записывается в файл трассировки. Файл трассировки задается с помощью параметра SQL_OPT_TRACEFILE. Если файл уже существует, записи добавляются в этот файл. В противном случае, создается новый файл. Если трассировка включена, но файл трассировки не задан, обращения к функциям ODBC выводятся в файл Sql.log.

SQL_OPT_TRACEFILE

Имя файла

Имя файла трассировки, используемое когда SQL_OPT_TRACE=1. Значение по умолчанию: SQL.LOG

SQL_PACKET_SIZE

Целое

Размер пакета (в байтах), используемый для обмена информацией между системой управления базой данных и сервером Web.

Примечание. Многие источники данных либо не поддерживают этот параметр, либо могут только возвращать размер пакета. Если заданный размер больше максимального размера или меньше минимального размера пакета, драйвер использует предельное значение.

SQL_TRANSLATE_DLL

Имя файла

Имя библиотеки динамической компоновки (DLL) с функциями SQLDriverToDataSource и SQLDataSourceToDriver, предназначенными для загрузки драйвера и выполнения трансляции.

SQL_TRANSLATE_OPTION

Целое

Параметр, управляющий функциональными возможностями трансляции, которые являются специфическими для используемой библиотеки динамической компоновки (DLL) трансляции. См. документацию драйвера и библиотеки динамической компоновки трансляции.

SQL_TXN_ISOLATION

Целое

1=Чтение без занесения

2=Чтение с занесением

4=Повторяемое чтение

8=Объединяемое чтение

16=Создание версий

Задание уровня изоляции транзакции. Приложение Internet Database Connector не поддерживает транзакции, более продолжительные, чем запрос в файле IDC. В некоторых СУБД, задав параметру значение 1, можно распараллелить обработку данных и повысить производительность. Для этого уровня изоляции данные, которые не были переданы в базу данных другими транзакциями, не могут быть восстановлены.

SQL_MAX_LENGTH

Целое

Максимальное количество данных, которые драйвер возвращает из текстового или двоичного столбца. Этот параметр предназначен для разгрузки потока данных в сети и используется, если в источнике данных (в противоположность драйверу) предусмотрена такая возможность.

SQL_MAX_ROWS

Целое

Максимальное число строк, возвращаемых оператором SELECT. Если параметр равняется 0 (значение по умолчанию), драйвер возвращает все отобранные строки. Этот параметр предназначен для разгрузки потока данных в сети в дополнение к встроенной переменной MaxRecords приложения Internet Database Connector, которая ограничивает число отобранных строк.

SQL_NOSCAN

0=Искать и конвертировать предложения escape

1=Не искать и не конвертировать предложения escape

Включает поиск предложений escape в строках SQL. Если параметр равен 0 (значение по умолчанию), драйвер ищет предложения escape в строках SQL. Если параметр равен 1, драйвер не ищет предложения escape в строках SQL; вместо этого, драйвер посылает оператор непосредственно источнику данных. Если оператор SQL не содержит предложения escape (они используют специальный синтаксис с фигурными скобками), параметру можно присвоить значение 1, что даст небольшое увеличение производительности драйвера.

SQL_QUERY_TIMEOUT

Целое

0=Без блокировки

Число секунд ожидания перед прерыванием выполнения оператора SQL. Если параметр равен 0 (значение по умолчанию) блокировка по времени выполнения отсутствует. Если параметр превышает интервал, заданный в источнике данных, используется значение из источника данных.

Целое

Зависит от драйвера

Значение параметра драйвера может быть задано в виде число=параметр.

Например:

4322=1, 234=String

Использование полей со списком в формах HTML

Если форма HTML содержит команду <SELECT MULTIPLE…>, приложение Internet Database Connector преобразует элементы команды в список, который может использоваться в файле IDC точно так же, как другие параметры. Параметр является списком, поэтому, как правило, применяется в предложении IN оператора Select, как показано в следующих примерах.

Если имя параметра в файле IDC заключено в одинарные кавычки, каждый элемент списка должен их использовать. Имя параметра заключается в кавычки всякий раз, когда столбец в предложении IN содержит текст или другой тип, применяющий литералы (например тип дата/время). Если одинарные кавычки отсутствуют в имени параметра, они отсутствуют в элементах списка. Не следует применять кавычки, если столбцы предложения IN имеют числовой тип.

Например, если форма HTML содержит поле со списком:

<SELECT MULTIPLE NAME="region"> <OPTION VALUE="Western"> <OPTION VALUE="Eastern"> <OPTION VALUE="Northern"> <OPTION VALUE="Southern"> </SELECT>

в файле IDC можно задать оператор SQLStatement:

SQLStatement: SELECT name, region FROM customer WHERE region IN ('%region%')

Если пользователь выбирает значения Northern, Western и Eastern в форме HTML, оператор SQL может быть преобразован следующим образом:

SELECT name, region FROM customer WHERE region IN ('Northern', 'Western', 'Eastern')

Другой пример, использующий числовые данные, показан ниже (в файле IDC отсутствуют одинарные кавычки):

<SELECT MULTIPLE NAME="year"> <OPTION VALUE="1994"> <OPTION VALUE="1995"> <OPTION VALUE="1996"> </SELECT>

Оператор SQLStatement в файле IDC:

SQLStatement: SELECT product, sales_year FROM sales WHERE sales_year IN (%year%)

Если пользователь выбирает значения 1994 и 1995 в форме HTML, оператор SQL может быть преобразован следующим образом:

SELECT product, sales_year FROM sales WHERE sales_year IN (1994, 1995)

Использование параллельных и последовательных запросов

В файле IDC можно создавать параллельные и последовательные запросы SQL.

Параллельные запросы

При обращении к базам данных (например базе данных SQL Server), способным одновременно обрабатывать несколько запросов SQL, следует применять параллельные запросы для повышения производительности. Например:

SQLSTatement: +insert into perf(testtime, tag) values (getdate(), '%tag%') +SELECT au_lname, ytd_sales from pubs.dbo.titleview where ytd_sales>5000 +SELECT count(*) as nrecs from pubs.dbo.titleview where ytd_sales>5000

Последовательные запросы

При обращении к базам данных, не предназначенным для одновременной обработки нескольких запросов SQL, следует применять последовательные запросы. Например:

SQLStatement: +insert into perf(testtime, tag) values (getdate(), '%tag%') SQLStatement: +SELECT au_lname, ytd_sales from pubs.dbo.titleview where ytd_sales>5000 SQLStatement: +SELECT count(*) as nrecs from pubs.dbo.titleview where ytd_sales>5000

Максимальная производительность достигается при работе с параллельными запросами (если такой режим поддерживается системой управления базой данных).

Файлы расширения языка HTML (файлы HTX)

Файлы расширения языка HTML содержат ряд зарезервированных слов (команд), управляющих выводом данных в документ HTML. Описание команд приводится в следующих разделах.

Команды <%begindetail%> и <%enddetail%>

Команды <%begindetail%> и <%enddetail%> ограничивают раздел (файла расширения HTML), в который выводятся результаты запроса к базе данных. Внутри раздела для разметки расположения данных используются комбинации символов: <%%> или <!--%%-->. Например, раздел:

<%begindetail%> <%au_lname%>: <%ytd_sales%> <%enddetail%>

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

Примечание. Если запрос не возвращает данные раздел <%begindetail%> будет пропущен. Для каждому оператору SQL (например SELECT), создающему набор результатов, в файле HTX должен соответствовать раздел <%begindetail%>

Команды <%if%>, <%else%> и <%endif%>

Для динамического изменения содержимого страницы Web в файлах расширения языка HTML можно проверять условия с помощью оператора if-then-else. Например, можно вставить условный оператор для проверки наличия результатов запроса в первой строке раздела <%begindetail%> и, если запрос не дает результатов, отобразить текст «Отсутствуют авторы с объемом продаж больше %idc.sales%». Таким образом, с помощью оператора <%if%> и встроенной переменной CurrentRecord на страницу Web можно вывести сообщение об ошибке при отсутствии результатов запроса. Следующий пример показывает применение оператора <%if%>.

<%begindetail%><%if CurrentRecord EQ 0 %>

Обработка результатов запроса:

<B>Авторы и объемы продаж за год<BR></B> <%endif%>

<%au_lname%>$<%ytd_sales%> <%enddetail%> <P> <%if CurrentRecord EQ 0 %> <I><B>Отсутствуют авторы с объемом продаж больше </I><%idc.sales%>.</B> <P> <%else%> <HR> <I> Эта страница Web получена в результате объединения результатов запроса SQL и шаблона Sample.htx. <P> Объединение выполнено приложением Microsoft Internet Database Connector; полученный документ передан этому средству просмотра службами узла Web корпорации Microsoft. </I>

<%endif%> </BODY> </HTML>

Основной синтаксис:

<%if условие %> текст HTML [<%else%> текст HTML] <%endif%>

Прототип условие задается в следующем виде:

операнд1 оператор операнд2

где оператор должен быть одним из следующих:

EQ

если операнд1 равен операнду2

LT

если операнд1 меньше чем операнд2

GT

если операнд1 больше чем операнд2

CONTAINS

если любая часть операнд1 содержит операнд2

Операнды операнд1 и операнд2 могут быть именами столбцов, одной из встроенных переменных (CurrentRecord или MaxRecords, см. ниже), переменными HTTP (см. ниже) или константами. Внутри оператора <%if %> элементы не разделяются символами <% и %>. Например, чтобы выполнить специальные действия для автора по имени Green, используйте условие:

<%begindetail%> <%if au_lname EQ "Green"%> этот парень зелен! <%endif%> <%enddetail%>

В условии оператора <%if %> можно использовать переменные протокола HTTP. Например, чтобы отформатировать страницу в зависимости от средства просмотра Web клиента в файл расширения языка HTML следует добавить строки:

<%if HTTP_USER_AGENT contains "Mozilla"%> средство просмотра клиента поддерживает усовершенствованные средства HTML <%else%> используется средство просмотра <%HTTP_USER_AGENT%> <%endif%>

Переменные CurrentRecord и MaxRecords

Встроенная переменная CurrentRecord содержит обработанных разделов <%begindetail%>. При первом вхождении в раздел <%begindetail%> переменная равна нулю. Далее, значение CurrentRecord увеличивается на единицу после выборки очередной записи из базы данных.

Встроенная переменная MaxRecords содержит значение поля MaxRecords в файле Internet Database Connector. Переменные MaxRecords и CurrentRecord могут использоваться только в операторах <%if%>.

Параметры из файлов Internet Database Connector

На параметры файла Internet Database Connector можно ссылаться в файле расширения HTML с помощью приставки idc с точкой. В примере Sample3.htx (см. выше), можно вывести значение параметра %sales%, если добавить строку:

Значение параметра sales: <%idc.sales%>

Переменные HTTP

Ряд переменных в файлах расширения HTML содержат информацию о среде и подключившемся клиенте Web. Кроме того, имеются заголовки, посланные клиентом. Для доступа к ним с помощью Internet Database Connector необходимо выполнить следующие действия:

1. Добавить HTTP_ в начало идентификаторов.

2. Преобразовать тире в символы подчеркивания.

3. Преобразовать все буквы в прописные.

В следующей таблице приведен список основных переменных (переменных среды для приложений CGI и переменных HTTP для приложений IDC).

Переменные сервера служб узла Web

Переменная

Значение

ALL_HTTP

Все заголовки HTTP, которые не были переданы ни в одну из приведенных переменных; эти переменные имеют форму HTTP_<имя поля заголовка>, например:

HTTP_ACCEPT: */*, q=0.300, audio/x-aiff, audio/basic, image/jpeg, image/gif, text/plain, text/html

HTTP_USER_AGENT: Microsoft Internet Explorer/0.1 (Win32)

HTTP_REFERER: http://webserver/samples/dbsamp/dbsamp3.htm

HTTP_CONTENT_TYPE: application/x-www-form-urlencoded

HTTP_CONTENT_LENGTH: 10

AUTH_TYPE

Тип проверки подлинности. Если имя пользователя проверялось сервером, содержит значение Basic. В противном случае отсутствует.

CONTENT_LENGTH

Число байтов, передаваемых сценарию от клиента.

CONTENT_TYPE

Тип данных в основном тексте запроса POST.

GATEWAY_INTERFACE

Версия рабочей спецификации CGI (Common Gateway Interface) сервера.

HTTP_ACCEPT

Специальный заголовок HTTP. Значения полей accept объединены и разделены запятыми (,); например, если следующие строки являются частью заголовка HTTP:

accept: */*; q=0.1

accept: text/html

accept: image/jpeg

тогда переменная HTTP_ACCEPT имеет значение:

*/*; q=0.1, text/html, image/jpeg

LOGON_USER

Учетная запись пользователя Windows NT.

PATH_INFO

Дополнительные сведения о пути, предоставленные клиентом. Содержит завершающую часть адреса URL, стоящую после имени сценария, но до строки запроса.

PATH_TRANSLATED

Значение PATH_INFO (любое виртуальное имя преобразовано в спецификацию каталога).

QUERY_STRING

Данные после знака вопроса (?) в адресе URL, используемые сценарием.

REMOTE_ADDR

Адрес IP клиента.

REMOTE_HOST

Адрес узла клиента.

REMOTE_USER

Имя пользователя, представляемое клиентом и проверяемое сервером.

REQUEST_METHOD

Метод запроса HTTP.

SCRIPT_NAME

Имя запускаемого сценария.

SERVER_NAME

Имя сервера (или адрес IP) в том виде, который применяется в адресе URL при обращении к самому себе.

SERVER_PORT

Порт TCP/IP, по которому запрос был получен.

SERVER_PORT_SECURE

Имеет значение 0 или 1. Значение 1 указывает на то, что запрос находится на зашифрованном порту.

SERVER_PROTOCOL

Название и версия информационного протокола запроса, обычно HTTP/1.0.

SERVER_SOFTWARE

Имя и версия сервера Web, под управлением которого выполняется приложение Internet Server Extension.

URL

Адрес URL запроса.