Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_XML.doc
Скачиваний:
16
Добавлен:
03.05.2019
Размер:
3.94 Mб
Скачать

Методы объекта recordset

Методы объекта recordset DSO

Переход от текущей записи к

Пример вызова

moveFirst

первой записи в документе

dsoInventory.recordset.moveFirst()

movePrevious

предыдущей записи

dsoInventory.recordset.movePrevious()

moveNext

следующей записи

dsoInventory.recordset.moveNext()

moveLast

последней записи в документе

dsoInventory.recordset.moveLast()

move

записи с указанным номером

dsoInventory.recordset.move(5)

К этим методам можно обращаться из написанного кода сценария. Однако самый простой способ их вызова - это присвоить имя метода атрибуту ONCLICK элемента BUTTON, как в следующем примере:

<BUTTON ONCLICK="dsolnventory.recordset.moveFirst()">

Первая запись

</BUTTON>

Этот элемент отображает кнопку. Когда пользователь щелкает мышью на кнопке, вызывается метод, присвоенный атрибуту ONCLICK, dsolnventory.recordset.moveFirst().

Если текущей является первая запись, вызов метода movePrevious() приводит к перемещению в зону начала файла (BOF), где нет записей, поэтому сцепленный элемент будет пуст. Аналогично, вызов метода moveNext, если текущей является последняя запись, приводит к перемещению в зону конца файла (EOF), поэтому сцепленный элемент также будет пуст.

К счастью, объект recordset поддерживает свойство BOF, которое принимает значение true (истина), если достигнуто начало файла, а также свойство EOF, которое принимает значение true (истина), если достигнут конец файла. Эти свойства можно использовать для определения этих состояний и внесения необходимых корректировок. Например, приведенный ниже код предписывает при щелчке на кнопке в случае, если достигнуто начало файла, быстро отобразить первую запись:

<BUTTON ONCLICK="dsoInventory.recordset.movePrevious();

if (dsoInventory.recordset.BOF)

dsoInventory.recordset.moveNext()">

Назад

</BUTTON>

Следующий код проверяет достижение конца файла:

<BUTTON ONCLICK="dsoInventory.recordset.moveNext();

if (dsoInventory.recordset.EOF)

dsoInventory.recordset.movePrevious()">

Вперёд

</BUTTON>

Атрибуту ONCLICK (либо другим атрибутам, относящимся к событиям, например, ONMOUSEOVER) можно присвоить целый блок кода сценария. В этих примерах код написан на языке Microsoft JScript.

Ниже представлен пример HTML-страницы, при помощи которой XML-документа из Листинга 1.1 отображается по одной записи за один раз. Страница содержит кнопки для перехода к первой, предыдущей, последующей и последней записям (см. рисунок 42).

<HTML>

<HEAD>

<TITLE>Описание книги</TITLE>

</HEAD>

<BODY>

<XML ID="dsoInventory" SRC="Inventory.xml"></XML>

<H2>Описание книги</H2>

<SPAN STYLE="font-style:italic">Заголовок:</SPAN>

<SPAN DATASRC="#dsoInventory" DATAFLD="TITLE"

STYLE="font-weight:bold"></SPAN>

<BR>

<SPAN STYLE="font-style:italic">Автор:</SPAN>

<SPAN DATASRC="#dsoInventory" DATAFLD="AUTHOR"></SPAN>

<BR>

<SPAN STYLE="font-style:italic">Тип обложки:</SPAN>

<SPAN DATASRC="#dsoInventory" DATAFLD="BINDING"></SPAN>

<BR>

<SPAN STYLE="font-style:italic">Количество страниц:</SPAN>

<SPAN DATASRC="#dsoInventory" DATAFLD="PAGES"></SPAN >

<BR>

<SPAN STYLE="font-style:italic">Цена: </SPAN>

<SPAN DATASRC="#dsoInventory" DATAFLD="PRICE"></SPAN>

<HR>

<BUTTON ONCLICK="dsoInventory.recordset.moveFirst()">

|< First

</BUTTON>

<BUTTON ONCLICK="dsoInventory.recordset.movePrevious();

if (dsoInventory.recordset.BOF)

dsoInventory.recordset.moveNext()">

< Back

</BUTTON>

<BUTTON ONCLICK="dsoInventory.recordset.moveNext();

if (dsoInventory.recordset.EOF)

dsoInventory.recordset.movePrevious()">

Forward >

</BUTTON>

<BUTTON ONCLICK="dsoInventory.recordset.moveLast()">

Last >|

</BUTTON>

</BODY>

</HTML>

Листинг 1.20