Windows Script Host для Windows 2000/XP
Шрифт:
//Выполняем SQL-запрос, в результате создается объект Recordset
RS=Connect.Execute(SSource);
В результате переменная
RS
становится нужным нам экземпляром объекта Recordset
. После этого записи из набора RS
обрабатываются точно так же, как в сценарии ListRecords1.js. Листинг 9.3. Просмотр записей таблицы с использованием объекта Connection
/*******************************************************************/
/*
Имя: ListRecords2.js */
/* Язык: JScript */
/* Описание: Просмотр записей из таблицы базы данных */
/* с использованием объекта Connection */
/*******************************************************************/
//Объявляем переменные
var
RS, //Экземпляр объекта Recordset
Connect, //Экземпляр объекта Connection
SSource, //Строка с текстом SQL-запроса к БД
SConnect, //Строка с параметрами соединения с БД
SOut, //Строка, в которой сохраняется выходная информация
s;
//Формируем SQL-запрос к таблице Phone
SSource = "SELECT * FROM Phone";
//Формируем строку с параметрами соединения с БД
//(указываем нужный DSN)
SConnect = "DSN=PhoneDS";
//Создаем объект Connection
Connect=WScript.CreateObject("ADODB.Connection");
//Устанавливаем связь с БД
Connect.Open(SConnect);
//Выполняем SQL-запрос, в результате создается объект Recordset
RS=Connect.Execute(SSource);
SOut="ВСЕ ЗАПИСИ ИЗ ТАБЛИЦЫ phone.dbf:\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
RS.Close;
//Выводим на экран строку SOut
WScript.Echo(SOut);
/************* Конец *********************************************/
Получение
Иногда бывает необходимо определить число и названия полей или подсчитать общее число записей в таблице. Приведенный в листинге 9.4 сценарий TableInfo.js выводит на экран диалоговое окно, где приведены названия всех полей и общее количество записей таблицы Phone.dbf (рис. 9.11).
Рис. 9.11. Информация о полях и записях таблицы Phone
В TableInfo.js для доступа к таблице Phone создается объект
Recordset
: //Формируем SQL-запрос к таблице Phone
SSource = "SELECT * FROM Phone";
//Формируем строку с параметрами соединения с БД
//(указываем нужный DSN)
SConnect = "DSN=PhoneDS";
//Создаем объект Recordset
RS=WScript.CreateObject("ADODB.Recordset");
Перед открытием набора записей с помощью метода
Open
нужно установить свойство CursorType
объекта Recordset
равным 3 (при этом создается статическая копия таблицы, что позволяет получить информацию о полях и записях): //Задаем статический курсор
RS.CursorType = 3;
//Открываем набор записей - результат запроса
RS.Open(SSource, SConnect);
После этого в коллекции
Fields
будут содержаться все поля набора записей Recordset
, а в свойстве RecordCount
— число записей в этом наборе: //Определяем число полей в наборе данных
RS_NomFields = RS.Fields.Count;
//Определяем число записей в наборе данных
RS_NomRecs = RS.RecordCount;
В переменной
SOut
будет формироваться текст для вывода на экран: SOut="ТАБЛИЦА Phone СОДЕРЖИТ "+NomFields+" ПОЛЯ(ЕЙ):\n\n";
Для получения списка полей мы перебираем в цикле
for
все элементы коллекции Fields
: //Перебираем все поля набора данных RS
for (i=0; i<RS.Fields.Count; i++) {
//Формируем строку с номером и именем поля таблицы
SOut+"Поле N "+i+": "+RS.Fields(i).Name+"\n";
}
После завершения цикла к переменной
SOut
добавляется информация о количестве записей, набор записей RS
закрывается и значение переменной SOut
выводится на экран:
Поделиться:
Популярные книги
Третий Генерал: Тома I-II
1. Третий Генерал
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Легат
6. Стеллар
Фантастика:
боевая фантастика
рпг
6.73
рейтинг книги
Целеполагание
4. Глэрд
Фантастика:
фэнтези
боевая фантастика
рпг
5.00
рейтинг книги
Кодекс Охотника. Книга XXVI
26. Кодекс Охотника
Фантастика:
попаданцы
5.00
рейтинг книги
Здравствуй, 1985-й
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Наследие Маозари 6
6. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Хозяин Стужи
1. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Серпентарий
Young Adult. Темный мир Шарана. Вселенная Ирены Мадир
Фантастика:
фэнтези
готический роман
5.00
рейтинг книги
Возвращение
5. Другая сторона
Фантастика:
боевая фантастика
6.23
рейтинг книги
Вернувшийся: Посол. Том IV
4. Вернувшийся
Фантастика:
космическая фантастика
киберпанк
5.00
рейтинг книги
Вперед в прошлое 2
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Неучтенный элемент. Том 2
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Солнечный корт
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Наша навсегда
2. Наша
Любовные романы:
современные любовные романы
эро литература
5.00