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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

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

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

SConnect = "DSN=PhoneDS";

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

RS.Open(SSource, SConnect);

Текст, который будет в конце сценария выведен на экран, будет храниться в переменной SOut. Первоначально в эту переменную записываем заголовок:

SOut="BCE ЗАПИСИ ИЗ ТАБЛИЦЫ phone.dbf:\n";

Для перемещения по записям набора

RS
используется так называемый курсор, который после выполнения метода
Open
автоматически устанавливается на первую запись. Перебор всех записей производится в цикле
while
, условием выхода из которого является перемещение курсора за последнюю запись таблицы (при этом свойство
EOF
объекта
Recordset
станет равным
True
).

//Перебираем все записи набора данных 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";

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

Острова

Орлов Алекс
5. Бронебойщик
Фантастика:
боевая фантастика
8.41
рейтинг книги
Острова

Чёрная магия (Сборник)

Гейман Нил
Шедевры фантастики
Фантастика:
фэнтези
6.40
рейтинг книги
Чёрная магия (Сборник)

Искатели приключений

Роббинс Гарольд
Проза:
классическая проза
8.33
рейтинг книги
Искатели приключений

Верность

Романовский Адриан Адамович
Приключения:
исторические приключения
морские приключения
5.00
рейтинг книги
Верность

Том 6 (доп.). История любовная

Шмелев Иван Сергеевич
6. И. Шмелев. Собрание сочинений в 5 томах
Проза:
классическая проза
4.20
рейтинг книги
Том 6 (доп.). История любовная

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Счастливый ребенок. Универсальные правила

Курпатов Андрей Владимирович
Универсальные правила
Дом и Семья:
воспитание детей
здоровье детей
5.00
рейтинг книги
Счастливый ребенок. Универсальные правила

Ксения

Зиминоид
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ксения

Воронцов. Перезагрузка. Книга 2

Тарасов Ник
2. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Воронцов. Перезагрузка. Книга 2

Перезагрузка

Поселягин Владимир Геннадьевич
6. Дитё
Фантастика:
боевая фантастика
7.62
рейтинг книги
Перезагрузка

Острова в океане

Хемингуэй Эрнест Миллер
Книга на все времена
Проза:
классическая проза
6.60
рейтинг книги
Острова в океане

Ученик афериста

Lexie Greenstwater
Проза:
современная проза
5.00
рейтинг книги
Ученик афериста

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Двенадцатая реинкарнация. Трилогия

Богдашов Сергей Александрович
Фантастика:
боевая фантастика
5.60
рейтинг книги
Двенадцатая реинкарнация. Трилогия