Вход/Регистрация
Windows Script Host для Windows 2000/XP
вернуться

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

Шрифт:

Function WSHInputBox(Message,Title)

'Выводим диалоговое окно со строкой ввода

WSHInputBox = InputBox(Message,Title)

End Function

</script>

<script language="JScript">

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

var

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

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

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

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

 Res, //Результат ввода в диалоговом окне

 SFilt, //Шаблон, по которому будет производиться фильтрация

 NomRecs, //Количество записей в отфильтрованном наборе

 s;

//Выводим диалоговое окно для ввода первой буквы фамилии

Res=WSHInputBox("Введите первые буквы фамилии","Работа с базой данных");

//Формируем шаблон, по которому будет производиться фильтрация

SFilt="'"+Res+"%'";

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

SSource = "SELECT * FROM Phone WHERE (LastName LIKE "+SFilt+")";

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

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

SConnect = "DSN=PhoneDS";

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

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

//Задаем статический курсор

RS.CursorType = 3;

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

RS.Open(SSource,SConnect);

//Определяем число записей в наборе RS

NomRecs = RS.RecordCount;

if (NomRecs==0) {

 WScript.Echo("В таблице Phone нет ни одной фамилии, начинающейся на '" + Res+"'");

 WScript.Quit;

}

SOut="ВСЕГО "+NomRecs+" ЗАПИСЕЙ, НАЧИНАЮЩИХСЯ НА '"+Res+"':\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);

</script>

</job>

Перемещение в наборе записей 

Во всех рассмотренных выше сценариях мы перемещались в наборе

Recordset
сверху вниз, от первой записи к последней. Существует, однако, возможность перемещаться по записям не только вперед, но и назад. Это осуществляется с помощью метода
MovePrevious
, для использования которого нужно установить тип курсора (свойство
CursorType
) в объекте
Recordset
равным 1, 2 или 3.

Рассмотрим сценарий MoveInTable.js, в котором записи таблицы Phone выводятся в порядке, обратном физическому (рис. 9.16).

Рис. 9.16. Записи таблицы Phone в обратном порядке

Набор записей Recordset в этом сценарии открывается в режиме статической копии таблицы (свойство

CursorType
равно 3):

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

SSource = "SELECT * FROM Phone";

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

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

SConnect = "DSN=PhoneDS";

  • Читать дальше
  • 1
  • ...
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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