Шрифт:
Интервал:
Закладка:
//Определяем число полей в наборе данных
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
- Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 - Наик Дайлип - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Создание и обслуживание сетей в Windows 7 - Александр Ватаманюк - Программное обеспечение
- Windows XP. От простого к сложному - Антон Белоусов - Программное обеспечение
- Реестр Windows XP. Трюки и эффекты - Алексей Гладкий - Программное обеспечение
- Ваш персональный компьютер: настраиваем в домашних условиях - Андрей Кашкаров - Программное обеспечение
- Виртуальные машины: несколько компьютеров в одном - Алексей Гультяев - Программное обеспечение
- Евгений Яворских Пингвиний BUNT - Евгений Яворских - Программное обеспечение
- Руководство по переходу на Ubuntu 10.04 LTS «Lucid Lynx» - Вадим Неворотин - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение