KnigaRead.com/

Андрей Попов - Windows Script Host для Windows 2000/XP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Андрей Попов, "Windows Script Host для Windows 2000/XP" бесплатно, без регистрации.
Перейти на страницу:

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

RS_NomFields = RS.Fields.Count;

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

RS_NomRecs = RS.RecordCount;

В переменной SOut будет формироваться текст для вывода на экран:

SOut="ТАБЛРЦА Phone СОДЕРЖРРў "+NomFields+" ПОЛЯ(ЕЙ):nn";

Для получения списка полей мы перебираем в цикле for все элементы коллекции Fields:

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

for (i=0; i<RS.Fields.Count; i++) {

 //Формируем строку с номером и именем поля таблицы

 SOut+"Поле N "+i+": "+RS.Fields(i).Name+"n";

}

После завершения цикла к переменной SOut добавляется информация о количестве записей, набор записей RS закрывается и значение переменной SOut выводится на экран:

SOut+="nР "+NomRecs+" Р—РђРџРРЎР¬(ЕЙ)";

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

RS.Close();

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

WScript.Echo(SOut);

Листинг 9.4. Получение информации о полях таблицы

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

/* РРјСЏ: TableInfo.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В  */

/* Язык: JScript                                                   */

/* Описание: Получение информации о полях таблицы                  */

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

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

var

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

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

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

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

 NomField, //Количество полей в таблице

 NomRecs,  //Количество записей в таблице

В i;

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

SSource = "SELECT * FROM Phone";

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

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

SConnect = "DSN=PhoneDS";

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

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

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

RS.CursorType = 3;

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

RS.Open(SSource,SConnect);

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

NomFields = RS.Fields.Count;

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

NomRecs = RS.RecordCount;

SOut="ТАБЛРЦА Phone СОДЕРЖРРў "+NomFields+" ПОЛЯ(ЕЙ):nn";

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

for (i=0; i<RS.Fields.Count; i++) {

 //Формируем строку с номером и именем поля таблицы

 SOut+="Поле N "+i+": "+RS.Fields(i).Name+"n";

}

SOut+="nР "+NomRecs+" Р—РђРџРРЎР¬(ЕЙ)";

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

RS.Close();

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

WScript.Echo(SOut);

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

Сортировка записей в таблице 

Рспользуя предложение ORDER BY РІ операторе SELECT, можно получить РёР· источника данных записи, отсортированные РїРѕ какому-либо полю. Например, следующий SQL-запрос

SELECT * FROM Phone ORDER BY LastName

вернет упорядоченный по полю LastName набор, содержащий все записи из таблицы Phone (рис. 9.12).

Рис. 9.12. Сортировка записей таблицы Phone по полю LastName


Мы напишем сценарий SortRecords.wsf, с помощью которого можно будет выводить записи из таблицы Phone, отсортированные либо по фамилии (поле LastName), либо по телефону (поле Phone). Выбор осуществляется с помощью ввода соответствующего значения в диалоговом окне (рис. 9.13).

Рис. 9.13. Выбор поля для сортировки


Само диалоговое окно реализуется с помощью VBScript-функции WSHInputBox(Message, Title):

Function WSHInputBox(Message, Title)

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

В WSHInputBox = InputBox(Message,Title)

End Function

Эта функция вызывается из написанной на JScript части сценария следующим образом:

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

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

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

SMenu+="nnКоманда:";

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

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

Введенное в диалоговом окне значение записывается в переменную Res и анализируется в операторе switch:

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

switch (Res) {

case "1": {

В SSort="LastName";

В break;

}

case "2": {

В SSort="Phone";

В break;

}

default: {

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

В WScript.Quit();

}

}

После того как в переменную SSort занесено имя поля, по которому нужно производить сортировку, мы можем полностью сформировать нужный SQL-запрос к таблице Phone:

//Формируем SQL-запрос к таблице Phone SSource = "SELECT * FROM Phone ORDER BY "+SSort;

Оставшаяся часть сценария взята из сценария ListRecords1.js и комментариев не требует.

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

Листинг 9.5. Сортировка записей в таблице по заданному полю

<job id="SortRecs">

<runtime>

<description>

РРјСЏ: SortRecords.wsf

Описание: Сортировка записей таблицы БД по заданному полю

</description>

</runtime>

<script language="VBScript">

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

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

Function WSHInputBox(Message,Title)

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

WSHInputBox = InputBox(Message,Title)

End Function

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*