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.00
рейтинг книги
Возвращение
5. Другая сторона
Фантастика:
боевая фантастика
6.23
рейтинг книги
Идеальный мир для Лекаря 26
26. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Я все еще царь. Книга XXXI
31. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Телохранитель Генсека. Том 4
4. Медведев
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 33
33. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXVI
26. Кодекс Охотника
Фантастика:
попаданцы
5.00
рейтинг книги
Я до сих пор не князь. Книга XVI
16. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я снова не князь! Книга XVII
17. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неведомые дороги (сборник)
Фантастика:
ужасы и мистика
8.00
рейтинг книги
Вперед в прошлое 7
7. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Я С СССР! Том 5
5. Я спас СССР
Фантастика:
альтернативная история
6.22
рейтинг книги
Родословная. Том 2
2. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Отверженный VI: Эльфийский Петербург
6. Отверженный
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00