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

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

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

while (!RS.EOF) {

 …

}

Для доступа к полям текущей записи используется коллекция

Fields
, содержащая значения всех полей; чтобы получить значение конкретного поля, нужно указать в круглых скобках имя этого поля в кавычках, скажем,
RS.Fields("Name")
. Метод
MoveNext
выполняет переход к следующей записи таблицы:

while (!RS.EOF) {

 //Формируем
строку со значениями трех полей, которые разделены

 //символами табуляции

 s=RS.Fields("LastName")+"\t"+RS.Fields("Name")+"\t"+ RS.Fields("Phone");

 //В конце строки ставим символ перевода строки

 s+="\n";

 //Добавляем сформированную строку к переменной SOut

 SOut+=s;

 //Переходим к следующей записи

 RS.MoveNext;

}

Закрывается объект

Recordset
с помощью метода
Close
:

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

RS.Close;

После этого сформированный в переменной sout текст выводится на экран:

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

WScript.Echo(SOut);

Полностью сценарий ListRecords1.js приведен в листинге 9.2.

Листинг 9.2. Просмотр записей таблицы

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

/* Имя: ListRecords1.js */

/* Язык: JScript */

/* Описание: Просмотр записей из таблицы базы данных */

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

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

var

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

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

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

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

 s;

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

SSource = "SELECT * FROM Phone";

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

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

SConnect = "DSN=PhoneDS";

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

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

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

RS.Open(SSource,SConnect);

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);

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

Для получения набора записей

Recordset
можно не создавать его непосредственно, как это было сделано в ListRecords1.js, а воспользоваться методом
Execute
объекта
Connection
. В качестве иллюстрации такого подхода рассмотрим сценарий ListRecords2.js (листинг 9.3).

Сначала в этом сценарии создается объект

Connection
и устанавливается связь с нашей базой данных (
DSN=PhoneDs
):

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

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

SConnect = "DSN=PhoneDS";

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

Connect=WScript.CreateObject("ADODB.Connection");

//Устанавливаем связь с БД

Connect.Open(SConnect);

Для получения всех записей из таблицы Phone используется тот же запрос, что и в сценарии ListRecords1.js:

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

SSource = "SELECT * FROM Phone";

//Выполняем SQL-запрос, в результате создается объект Recordset

RS=Connect.Execute(SSource);

В результате переменная

RS
становится нужным нам экземпляром объекта
Recordset
. После этого записи из набора
RS
обрабатываются точно так же, как в сценарии ListRecords1.js.

Листинг 9.3. Просмотр записей таблицы с использованием объекта Connection

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

/* Имя: ListRecords2.js */

/* Язык: JScript */

/* Описание: Просмотр записей из таблицы базы данных */

/* с использованием объекта Connection */

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

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

var

Поделиться с друзьями: