<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,      //Результат ввода в диалоговом окне

 SSort,    //Имя поля таблицы, по которому будет производиться сортировка

 SMenu,    //Текст сообщения в диалоговом окне ввода

 s;

//Формируем текст сообщения в диалоговом окне ввода

SMenu='1 - Сортировка по фамилии ';

SMenu+='2 - Сортировка по телефону ';

SMenu+=' Команда:';

//Выводим диалоговое окно для ввода режима сортировки

Res=WSHInputBox(SMenu,'Работа с базой данных');

//Анализируем введенное значение

 switch (Res) {

 case '1': {

  SSort='LastName';

  break;

 }

 case '2': {

  SSort='Phone';

  break;

 }

 default: {

  WScript.Echo('Вы ввели неправильное значение!');

  WScript.Quit();

 }

}

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

SSource = 'SELECT * FROM Phone ORDER BY '+SSort;

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

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

SConnect = 'DSN=PhoneDS';

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

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

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

RS.Open(SSource,SConnect);

SOut='ВСЕ ЗАПИСИ ИЗ ТАБЛИЦЫ phone.dbf: ';

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

while (!RS.EOF) {

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

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

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

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

 s+=' ';

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

 SOut+=s;

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

 RS.MoveNext();

}

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

RS.Close();

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

WScript.Echo(SOut);

</script>

</job>

Фильтрация записей в таблице 

Оператор SELECT позволяет выбирать из источника данных не все записи, а лишь те, которые удовлетворяют определенному критерию. Для этой цели в операторе SELECT применяется оператор WHERE. Например, следующий SQL-запрос

SELECT * FROM Phone WHERE (LastName LIKE 'П%')

вернет только те записи таблицы Phone, у которых значение поля LastName начинается на букву 'П' (шаблон '%' означает любое число любых символов).

Мы напишем сценарий FilterRecords.wsf, в котором можно ввести в диалоговом окне один или несколько символов (рис. 9.14) и получить список людей, фамилии которых начинаются с этих символов (рис. 9.15).

Рис. 9.14. Ввод первых символов фамилии для фильтрации записей

Рис. 9.15. Отфильтрованные в сценарии FilterRecords.wsf записи

Как и в сценарии SortRecords.wsf, символы в диалоговом окне вводятся с помощью VBScript-функции WSHInputBox():

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

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

После этого формируется строка с нужным SQL-запросом (переменная SSource) и строка с параметрами соединения с базой данных (переменная SConnect):

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

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

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

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

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату