Windows Script Host для Windows 2000/XP
Шрифт:
SOut="ВСЕГО "+NomRecs+" ЗАПИСЕЙ, НАЧИНАЮЩИХСЯ НА '"+Res+"':\n";
//Перебираем все записи набора данных RS
while (!RS.EOF) {
//Формируем строку со значениями трех полей, которые разделены
//символами табуляции
s=RS.Fields("LastName")+"\t"+RS.Fields("Name")+"\t"+RS.Fields("Phone");
//В конце строки ставим символ перевода строки
s+="\n";
//Добавляем
сформированную строку к переменной SOut
SOut+=s;
//Переходим к следующей записи
RS.MoveNext;
}
//Закрываем объект Recordset
RS.Close;
//Выводим на экран строку SOut
WScript.Echo(SOut);
</script>
</job>
Перемещение в наборе записей
Во всех рассмотренных выше сценариях мы перемещались в наборе
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")+"\t"+RS.Fields("Name")+"\t"+RS.Fields("Phone");
//В конце строки ставим символ перевода строки
s+="\n";
//Добавляем сформированную строку к переменной 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;
//Открываем набор записей-результат запроса
Поделиться:
Популярные книги
Отморозок 4
4. Отморозок
Фантастика:
попаданцы
фантастика: прочее
5.00
рейтинг книги
Инженер Петра Великого 2
2. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
На гребне обстоятельств
7. Живой лед
Фантастика:
фэнтези
5.25
рейтинг книги
Моров
1. Моров
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Как я строил магическую империю 3
3. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 19
19. Черный маг императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Тринадцатый V
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Император Пограничья 1
1. Император Пограничья
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Дважды одаренный
1. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Душелов
1. Внутренние демоны
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Третий. Том 3
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 5
5. Отпуск
Фантастика:
космическая фантастика
фантастика: прочее
5.00
рейтинг книги
Поводырь
3. Ботаник
Фантастика:
фэнтези
6.17
рейтинг книги
Газлайтер. Том 15
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00