Чтение онлайн

на главную - закладки

Жанры

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
выводится на экран:

Поделиться:
Популярные книги

Свет во мраке

Михайлов Дем Алексеевич
8. Изгой
Фантастика:
фэнтези
7.30
рейтинг книги
Свет во мраке

Целитель. Книга вторая

Первухин Андрей Евгеньевич
2. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель. Книга вторая

Мое ускорение

Иванов Дмитрий
5. Девяностые
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Мое ускорение

Инферно

Кретов Владимир Владимирович
2. Легенда
Фантастика:
фэнтези
8.57
рейтинг книги
Инферно

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Шведский стол

Ланцов Михаил Алексеевич
3. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Шведский стол

Объединитель

Астахов Евгений Евгеньевич
8. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Объединитель

Кровь и Пламя

Михайлов Дем Алексеевич
7. Изгой
Фантастика:
фэнтези
8.95
рейтинг книги
Кровь и Пламя

Герцогиня в ссылке

Нова Юлия
2. Магия стихий
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Герцогиня в ссылке

Столичный доктор. Том II

Вязовский Алексей
2. Столичный доктор
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Столичный доктор. Том II

Последний попаданец 11. Финал. Часть 1

Зубов Константин
11. Последний попаданец
Фантастика:
фэнтези
юмористическое фэнтези
рпг
5.00
рейтинг книги
Последний попаданец 11. Финал. Часть 1

Новый Рал

Северный Лис
1. Рал!
Фантастика:
фэнтези
попаданцы
5.70
рейтинг книги
Новый Рал

Горькие ягодки

Вайз Мариэлла
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Горькие ягодки

Разведчик. Заброшенный в 43-й

Корчевский Юрий Григорьевич
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Разведчик. Заброшенный в 43-й