Windows Script Host для Windows 2000/XP
Шрифт:
//Формируем шаблон, по которому будет производиться фильтрация
SFilt="'"+Res+"%'";
//Формируем SQL-запрос к таблице Phone
SSource = "SELECT * FROM Phone WHERE (LastName LIKE "+SFilt+")";
//Формируем строку с параметрами соединения с БД
//(указываем нужный DSN)
SConnect = "DSN=PhoneDS";
Создав объект
Recordset
(переменная RS
),
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;
}
Поделиться:
Популярные книги
Паладин из прошлого тысячелетия
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Я еще не барон
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мечник Вернувшийся 1000 лет спустя
1. Вернувшийся мечник
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Зеркало силы
3. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Закрытые Миры
Вселенная EVE Online
Фантастика:
фэнтези
5.86
рейтинг книги
Булгаков
Документальная литература:
публицистика
5.00
рейтинг книги
Газлайтер. Том 18
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Моя простая курортная жизнь
1. Моя простая курортная жизнь
Проза:
современная проза
5.00
рейтинг книги
Мастер 6
6. Мастер
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Как я строил магическую империю 6
6. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
На границе империй. Том 9. Часть 5
18. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 23
23. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Виконт. Книга 3. Знамена Легиона
3. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Личный аптекарь императора. Том 3
3. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00