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

 s+=' ';

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

 SOut+=s;

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

 RS.MovePrevious();

}

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

RS.Close();

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

WScript.Echo(SOut);

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

Доступ к БД без создания DSN

Напомним, что для получения доступа к базе данных мы предварительно создали DSN с именем PhoneDS (рис. 9.9). Однако связываться с базами данных можно и без описания DSN (DSN, Less Database Access). Для этого необходимо в качестве второго параметра метода Open объекта Recordset задать строку, в которой явно будут записаны название нужного драйвера и параметры соединения с базой. Для используемой нами базы данных DBF-формата достаточно указать каталог, в котором находятся нужные таблицы (этот параметр называется DefaultDir). Например, если таблицы расположены в каталоге Tabl на диске С:, то строка SConn с параметрами соединения имеет следующий вид:

SConn='Driver={Microsoft dBase Driver (*.dbf)};DefaultDir=C:\Tabl';

К положительным моментам доступа к данным без предварительного создания DSN можно отнести то, что строка соединения с базой формируется во время выполнения сценария (имя базы данных можно передавать в качестве параметра) — это позволяет писать более гибкие сценарии. Кроме этого, сценарий, не требующий предварительной настройки ODBC, легче переносить на другие машины. Недостаток этого подхода состоит в невозможности установить контроль над соединением с базой в той мере, в какой это позволяет сделать ODBC (это становится важным при работе с базой данных, находящейся в сети).

В листинге 9.8 приведен сценарий DSN_Less.js, в котором доступ к таблице Phone осуществляется без использования DSN (предполагается, что файл Phone.dbf находится в текущем каталоге).

Листинг 9.8. Доступ к базе Phone без использования DSN

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

/* Имя: DSN_Less.js                                                */

/* Язык: JScript                                                   */

/* Описание: Просмотр записей таблицы без использования DSN        */

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

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

var

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

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

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

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

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

 SDefaultDir, //Путь к каталогу, в котором находится таблица Phone

 s;

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

WshShell = WScript.CreateObject('WScript.Shell');

//Определяем путь к текущему каталогу, в котором хранится таблица Phone

SDefaultDir=WshShell.CurrentDirectory;

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

SSource = 'SELECT * FROM Phone';

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

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

SConnect='Driver={Microsoft dBase Driver (*.dbf)};DefaultDir='+SDefaultDir;

//Создаем объект 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);

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

Глава 10

Разработка СОМ-объектов с помощью языков сценариев 

Во всех сценариях WSH, которые мы рассматривали ранее, создавались экземпляры внешних СОМ- объектов, являющихся серверами автоматизации, после чего мы не задумываясь использовали свойства и методы этих объектов. В основном СОМ-объекты создаются в виде откомпилированных модулей с помощью универсальных языков типа Visual С++ или Visual Basic, однако с помощью специальной технологии Windows Script Components можно зарегистрировать в системе СОМ-объект, написанный на языке JScript или VBScript, причем для этого не нужно проводить никакой компиляции исходного кода сценария! Таким образом, любой сценарий WSH можно 'упаковать' в СОМ-объект (мы будем называть такие объекты компонентами-сценариями или объектами- сценариями) и использовать его в приложениях, написанных на любом языке, который позволяет подключать внешние объекты. Преимуществами компонентов-сценариев над обычными

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

0

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

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