/* Имя: 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);

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

Получение информации о полях и записях таблицы

Иногда бывает необходимо определить число и названия полей или подсчитать общее число записей в таблице. Приведенный в листинге 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+' ПОЛЯ(ЕЙ): ';

Для получения списка полей мы перебираем в цикле for все элементы коллекции Fields:

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

for (i=0; i<RS.Fields.Count; i++) {

 //Формируем строку с номером и именем поля таблицы

 SOut+'Поле N '+i+': '+RS.Fields(i).Name+' ';

}

После завершения цикла к переменной SOut добавляется информация о количестве записей, набор записей RS закрывается и значение переменной SOut выводится на экран:

SOut+=' И '+NomRecs+' ЗАПИСЬ(ЕЙ)';

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

RS.Close();

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

WScript.Echo(SOut);

Листинг 9.4. Получение информации о полях таблицы

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

/* Имя: TableInfo.js                                               */

/* Язык: JScript                                                   */

/* Описание: Получение информации о полях таблицы                  */

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

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

var

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату