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

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

Жанры

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

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

Товарищ "Чума" 2

lanpirot
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 2

Отвергнутая невеста генерала драконов

Лунёва Мария
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Отвергнутая невеста генерала драконов

Хозяин Стужи 7

Петров Максим Николаевич
7. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Стужи 7

Локки 9. Потомок бога

Решетов Евгений Валерьевич
9. Локки
Фантастика:
фэнтези
попаданцы
героическая фантастика
боевая фантастика
5.00
рейтинг книги
Локки 9. Потомок бога

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Московское золото или нежная попа комсомолки. Часть Вторая

Хренов Алексей
2. Летчик Леха
Фантастика:
попаданцы
5.00
рейтинг книги
Московское золото или нежная попа комсомолки. Часть Вторая

Силуэты

Полевой Борис Николаевич
Проза:
советская классическая проза
6.25
рейтинг книги
Силуэты

Рассвет русского царства

Грехов Тимофей
1. Новая Русь
Документальная литература:
историческая литература
5.00
рейтинг книги
Рассвет русского царства

Когда он был порочным

Куин Джулия
6. Бриджертоны
Любовные романы:
исторические любовные романы
8.85
рейтинг книги
Когда он был порочным

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Матабар V

Клеванский Кирилл Сергеевич
5. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар V

На границе империй. Том 7. Часть 3

INDIGO
9. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.40
рейтинг книги
На границе империй. Том 7. Часть 3

Гримуар тёмного лорда I

Грехов Тимофей
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар тёмного лорда I

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь