Просмотр записей в таблице 

Просмотр записей в таблице 

После того как мы произвели копирование записной книжки в таблицу Phone.dbf, возникает естественное желание просмотреть из сценария введенные записи. Напишем для этой цели сценарий ListRecords1.js, результат работы которого представлен на рис. 9.10.

Рис. 9.10. Записи из таблицы Phone

Основным объектом, позволяющим получить доступ к записям таблицы, является Recordset, который представляет собой набор записей, полученных, например, в результате выполнения SQL-запроса. Создается объект Recordset следующим образом (экземпляром объекта будет переменная RS):

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

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

Все строки из таблицы Phone выбираются с помощью следующего SQL- запроса:

SELECT * from Phone

Этот запрос записывается в переменную SSource:

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

SSource = "SELECT * FROM Phone";

Для занесения в RS требуемого набора записей используется метод Open(), в качестве параметров которого указываются две строки. В первой из них должен содержаться SQL-запрос (переменная SSource), а во второй — параметры соединения с базой данных (в нашем случае это переменная SConnect, в которой записан нужный DSN):

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

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

SConnect = "DSN=PhoneDS";

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

RS.Open(SSource, SConnect);

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

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

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

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

while (!RS.EOF) {

 …

}

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

while (!RS.EOF) {

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

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

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

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

 s+=" ";

 //Добавляем сформированную строку к переменной 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: ";

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

while (!RS.EOF) {

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

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

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

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

 s+=" ";

 //Добавляем сформированную строку к переменной 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

 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: ";

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

while (!RS.EOF) {

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

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

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

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

 s+=" ";

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

 SOut+=s;

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

 RS.MoveNext();

}

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

RS.Close();

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

WScript.Echo(SOut);

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

6.5 Хост в таблице маршрутизации IP

Из книги автора

6.5 Хост в таблице маршрутизации IP Предположим, что нужно переслать данные:Из: 130.15.12.131В: 192.45.89.5Быстрая проверка маски подсети показывает, что система назначения не принадлежит локальной подсети. В этом случае IP должен обратиться к локальной таблице маршрутизации.Таблица


7.2.6. Создание пользовательских цепочек в таблице filter

Из книги автора

7.2.6. Создание пользовательских цепочек в таблице filter Итак, у вас перед глазами наверняка уже стоит картинка движения пакетов через различные цепочки, и как эти цепочки взаимодействуют между собой! Вы уже должны ясно представлять себе цели и назначение данного сценария.


Редактирование текста в таблице

Из книги автора

Редактирование текста в таблице Работа с текстом, находящимся внутри таблицы, практически ничем не отличается от работы с обычным текстом. Для данных таблицы можно устанавливать любое форматирование, использовать привычные команды редактирования. Для перемещения


5.4. Сортировка данных в таблице

Из книги автора

5.4. Сортировка данных в таблице Сортировка данных – это одна из наиболее важных команд для организации таблицы. Целью сортировки часто является упорядочивание записей на основе выбранного критерия. Часто сортировку используют, если данные в таблице набирались


Изменение столбцов в таблице

Из книги автора

Изменение столбцов в таблице Существующие столбцы в таблице могут быть изменены в нескольких отношениях, а именно:* имя столбца может быть изменено на другое имя, не используемое в таблице;* столбец может быть "перенесен" на другую позицию в системе упорядочивания


Изменение строк в той же таблице

Из книги автора

Изменение строк в той же таблице Прежде чем решать вопрос об использовании триггера для изменения строк в той же самой таблице, внимательно рассмотрите возможность завершения цикла вложенной деятельности. Если триггер выполняет действие, которое приводит к вызову


Форматирование текста в таблице

Из книги автора

Форматирование текста в таблице Текст, который вы будете вводить в таблицу, можно форматировать так же, как обычный, размещенный в документе Word, – можно изменять его шрифт, устанавливать формат абзаца, тип выравнивания и т. д.При этом надо научиться правильно выделять


18.7.7. Одновременный просмотр двух записей

Из книги автора

18.7.7. Одновременный просмотр двух записей В некоторых случаях возникает необходимость в одновременной обработке двух записей, например, если нужно сравнить различные поля двух записей. Чтобы просматривать одновременно по две записи, достаточно после первой конструкции


Примечание к таблице 1

Из книги автора

Примечание к таблице 1 Передо мной стоит практически невыполнимая задача - на двух страницах внятно рассказать о четырех ноутбуках, на каждый из которых нужно как минимум по полосе. Проще всего привести таблицу спецификаций и проиллюстрировать ее фотографиями, однако


Ввод и форматирование текста в таблице

Из книги автора

Ввод и форматирование текста в таблице Для начала ввода текста в таблицу щелкните кнопкой мыши на нужной ячейке, чтобы установить в нее текстовый курсор, после чего начинайте набор текста. Если текст не будет помещаться в ячейку, ее высота автоматически увеличится, а


Типы данных в таблице

Из книги автора

Типы данных в таблице Для создания таблицы нужно знать названия необходимых полей и тип данных в каждом из них. Решение об использовании полей того или иного типа обычно принимается при проектировании базы данных, причем каждое поле должно содержать определенный тип