Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

//Формируем шаблон, по которому будет производиться фильтрация

SFilt="'"+Res+"%'";

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

SSource = "SELECT * FROM Phone WHERE (LastName LIKE "+SFilt+")";

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

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

SConnect = "DSN=PhoneDS";

Создав объект

Recordset
(переменная
RS
),
мы присваиваем значение 3 свойству
CursorType
(это позволит узнать количество записей в наборе
RS
после выполнения SQL-запроса):

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

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

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

RS.CursorType = 3;

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

RS.Open(SSource, SConnect);

//Определяем число записей в наборе

RS_NomRecs = RS.RecordCount;

Если в наборе RS не окажется ни одной записи (нет фамилий, начинающихся на нужные символы), то будет выведено соответствующее сообщение и произойдет выход из сценария:

if (NomRecs==0) {

 WScript.Echo("В таблице Phone нет ни одной фамилии, начинающейся на '"+Res+"'");

 WScript.Quit;

}

Если же подходящие записи найдены, то они, как обычно, обрабатываются в цикле

for
. В результате формируется строка
SOut
со значениями полей
LastName
,
Name
и
Phone
для этих записей:

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
закрывается, а строка
SOut
выводится на экран:

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

RS.Close;

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

WScript.Echo(SOut);

Полностью текст сценария FilterRecords.wsf приведен в листинге 9.6.

Листинг 9.6. Фильтрация записей в таблице

<job id="FiltRecs">

<runtime>

<description>

Имя: FilterRecords.wsf

Описание:
Фильтрация записей таблицы Phone по первому символу

фамилии

</description>

</runtime>

<script language="VBScript">

'Функция для реализации диалогового окна со строкой ввода

'в сценариях JScript

Function WSHInputBox(Message,Title)

'Выводим диалоговое окно со строкой ввода

WSHInputBox = InputBox(Message,Title)

End Function

</script>

<script language="JScript">

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

var

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

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

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

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

 Res, //Результат ввода в диалоговом окне

 SFilt, //Шаблон, по которому будет производиться фильтрация

 NomRecs, //Количество записей в отфильтрованном наборе

 s;

//Выводим диалоговое окно для ввода первой буквы фамилии

Res=WSHInputBox("Введите первые буквы фамилии","Работа с базой данных");

//Формируем шаблон, по которому будет производиться фильтрация

SFilt="'"+Res+"%'";

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

SSource = "SELECT * FROM Phone WHERE (LastName LIKE "+SFilt+")";

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

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

SConnect = "DSN=PhoneDS";

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

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

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

RS.CursorType = 3;

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

RS.Open(SSource,SConnect);

//Определяем число записей в наборе RS

NomRecs = RS.RecordCount;

if (NomRecs==0) {

 WScript.Echo("В таблице Phone нет ни одной фамилии, начинающейся на '" + Res+"'");

 WScript.Quit;

}

Поделиться:
Популярные книги

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

На Ларэде

Кронос Александр
3. Лэрн
Фантастика:
фэнтези
героическая фантастика
стимпанк
5.00
рейтинг книги
На Ларэде

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Кай из рода красных драконов

Бэд Кристиан
1. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов

Хозяйка Проклятой Пустоши. Книга 2

Белецкая Наталья
2. Хозяйка Проклятой Пустоши
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка Проклятой Пустоши. Книга 2

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Чапаев и пустота

Пелевин Виктор Олегович
Проза:
современная проза
8.39
рейтинг книги
Чапаев и пустота

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Лютая

Шёпот Светлана Богдановна
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Лютая

Ведьмак (большой сборник)

Сапковский Анджей
Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Ведьмак (большой сборник)

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Ученик

Губарев Алексей
1. Тай Фун
Фантастика:
фэнтези
5.00
рейтинг книги
Ученик

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5