Перемещение в наборе записей 

Перемещение в наборе записей 

Во всех рассмотренных выше сценариях мы перемещались в наборе Recordset сверху вниз, от первой записи к последней. Существует, однако, возможность перемещаться по записям не только вперед, но и назад. Это осуществляется с помощью метода MovePrevious(), для использования которого нужно установить тип курсора (свойство CursorType) в объекте Recordset равным 1, 2 или 3.

Рассмотрим сценарий MoveInTable.js, в котором записи таблицы Phone выводятся в порядке, обратном физическому (рис. 9.16).

Рис. 9.16. Записи таблицы Phone в обратном порядке

Набор записей Recordset в этом сценарии открывается в режиме статической копии таблицы (свойство CursorType равно 3):

//Формируем SQL-запрос к таблице Phone

SSource = "SELECT * FROM Phone";

//Формируем строку с параметрами соединения с БД

//(указываем нужный DSN)

SConnect = "DSN=PhoneDS";

//Создаем объект Recordset

RS=WScript.CreateObject("ADODB.Recordset");

//Задаем статический курсор

RS.CursorType = 3;

После открытия набора записей мы переходим к последней записи с помощью метода MoveLast():

//Открываем набор записей - результат запроса

RS.Open(SSource, SConnect);

//Переходим на последнюю запись

RS.MoveLast();

После этого записи перебираются в цикле while:

//Перебираем все записи набора данных RS

while (!RS.BOF) {

 //Формируем строку со значениями трех полей, которые разделены

 //символами табуляции

 s=RS.Fields("LastName")+" "+RS.Fields("Name")+" "+RS.Fields("Phone");

 //В конце строки ставим символ перевода строки

 s+=" ";

 //Добавляем сформированную строку к переменной SOut

 SOut+=s;

 //Переходим к предыдущей записи

 RS.MovePrevious();

}

Свойство BOF, используемое в цикле while, становится равным true, когда курсор будет находиться перед первой записью таблицы RS.

После выхода из цикла объект Recordset закрывается и сформированная строка SOut выводится на экран:

//Закрываем объект Recordset

RS.Close();

//Выводим на экран строку SOut

WScript.Echo(SOut);

Полностью текст сценария MoveInTable.js приведен в листинге 9.7.

Листинг 9.7. Перемещение в наборе записей снизу вверх

/*******************************************************************/

/* Имя: MoveInTable.js                                             */

/* Язык: JScript                                                   */

/* Описание: Перемещение по набору записей в обратном порядке      */

/*******************************************************************/

//Объявляем переменные

var

 RS,       //Экземпляр объекта Recordset

 SSource,  //Строка с текстом SQL-запроса к БД

 SConnect, //Строка с параметрами соединения с БД

 SOut,     //Строка, в которой сохраняется выходная информация

 s;

//Формируем SQL-запрос к таблице Phone

SSource = "SELECT * FROM Phone";

//Формируем строку с параметрами соединения с БД

//(указываем нужный DSN)

SConnect = "DSN=PhoneDS";

//Создаем объект Recordset

RS=WScript.CreateObject("ADODB.Recordset");

//Задаем статический курсор

RS.CursorType = 3;

//Открываем набор записей-результат запроса

RS.Open(SSource,SConnect);

//Переходим на последнюю запись

RS.MoveLast();

SOut="ВСЕ ЗАПИСИ ИЗ ТАБЛИЦЫ phone.dbf В ОБРАТНОМ ПОРЯДКЕ: ";

//Перебираем все записи набора данных RS

while (!RS.BOF) {

 //Формируем строку со значениями трех полей, которые разделены

 //символами табуляции

 s=RS.Fields("LastName")+" "+RS.Fields("Name")+" "+RS.Fields("Phone");

 //В конце строки ставим символ перевода строки

 s+=" ";

 //Добавляем сформированную строку к переменной SOut

 SOut+=s;

 //Переходим к предыдущей записи

 RS.MovePrevious();

}

//Закрываем объект Recordset

RS.Close();

//Выводим на экран строку SOut

WScript.Echo(SOut);

/*************  Конец *********************************************/

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Как предлагать товары в наборе

Из книги автора

Как предлагать товары в наборе Самый простой и очень эффективный способ – информировать человека о выгодных наборах в интернет-магазине и предложить ему купить просматриваемые товары именно в составе наборов. При этом показать, сколько денег он экономит на каждом


Перемещение объектов

Из книги автора

Перемещение объектов Команда MOVE осуществляет перемещение объектов. Она вызывается из падающего меню Modify ? Move или щелчком на пиктограмме Move на панели инструментов Modify.Запросы команды MOVE: Select objects: – выбрать объекты Select objects: – нажать клавишу Enter для завершения выбора


Перемещение объектов

Из книги автора

Перемещение объектов Теперь, когда вам привычны различные способы выделения объектов, настало время некоторых действий.Команда MOVE перемещает объекты на расстояние и угол, предложенные пользователем.При запуске команды MOVE в области командной строки AutoCAD появляется


Информация о наборе модулей процесса

Из книги автора

Информация о наборе модулей процесса Теперь выясним, как выполнить цикл по всем модулям, загруженным в рамках данного процесса. Напомним, что модуль - это общее название, используемое для обозначения *.dll (или *.exe). При доступе к ProcessModuleCollection с помощью свойства Process.Module вы


Б.1.5. Перемещение по файлу

Из книги автора

Б.1.5. Перемещение по файлу В файловом дескрипторе запоминается текущая позиция в файле. При чтении или записи данных указатель текущей позиции перемещается на то количество байтов, которое было прочитано или записано. Но иногда нужно осуществлять простое перемещение по


Перемещение объектов

Из книги автора

Перемещение объектов Команда MOVE осуществляет перемещение объектов. Она вызывается из падающего меню Modify ? Move или щелчком на пиктограмме Move на панели инструментов Modify.Запросы команды MOVE:Select objects: – выбрать объектыSelect objects: – нажать клавишу Enter для завершения выбора


Перемещение объектов

Из книги автора

Перемещение объектов Команда MOVE осуществляет перемещение объектов. Она вызывается из падающего меню Modify ? Move или щелчком на пиктограмме Move на панели инструментов Modify.Запросы команды


Перемещение и копирование

Из книги автора

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


Перемещение объектов

Из книги автора

Перемещение объектов Теперь, когда вам привычны различные способы, которые существуют для выделения объектов, настало время некоторых действий. Команда MOVE перемещает объекты на расстояние и угол, предложенные пользователем.Чтобы вызвать команду MOVE, щелкните на кнопке


Перемещение объектов

Из книги автора

Перемещение объектов Команда MOVE осуществляет перемещение объектов. Она вызывается из падающего меню Modify ? Move или щелчком на пиктограмме Move на панели инструментов Modify.Запросы команды MOVE:Select objects: – выбрать объектыSelect objects: – нажать клавишу Enter для завершения выбора


Перемещение букв

Из книги автора

Перемещение букв Исходный файл: Textfly.fla Во многих Flash-роликах по экрану перемешается текст. Сушествует множество способов создания этого эффекта, некоторые из них проиллюстрированы примерами, которые имеются на Web-сайте поддержки книги.Задача проектаВ данном разделе


2.2.3. Перемещение окон

Из книги автора

2.2.3. Перемещение окон Также окна можно перемещать из одной части экрана в другую. Для этого наведите мышью на строку заголовка, нажмите и удерживайте левую кнопку и перетащите окно.Альтернативный способ — щелкните правой кнопкой мыши на строке заголовка и в открывшемся


Перемещение по листу

Из книги автора

Перемещение по листу Данные всегда вводятся в активную ячейку, выделенную жирной рамкой (см. рис. 6.2). Для смены активной ячейки есть два способа.? Щелчок кнопкой мыши на нужной ячейке.? Клавиши со стрелками (?, ?, ?, ?) (они сделают активной соседнюю ячейку в выбранном


Перемещение окон

Из книги автора

Перемещение окон Окна на рабочем столе Windows ХР очень часто появляются не там, где вам хотелось бы. Это нормально. С помощью мыши вы легко можете перетянуть его в любое другое место экрана. Лучше и удобнее всего перетягивать окно, ухватив строку заголовка.Теперь вы знаете,