Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

//Инициализируем константы для диалоговых окон

var vbInformation=64,vbOkOnly=0;

//Определение значения тега tgName XML-элемента obj

function GetTagVal(obj, tgName) {

 var ElemList;

 //Создаем коллекцию дочерних для obj элементов, которые

 //задаются тегом tgName

 ElemList=obj.getElementsByTagName(tgName);

 //Проверяем, есть ли в коллекции ElemList элементы

 if (ElemList.length>0)

//Возвращаем значение тега tgName

return ElemList.item(0).text

 else return "";

}

//Вставка в таблицу одной записи

function PersonToTable(XNode) {

 var SSQL=""; //Переменная для формирования текста SQL-запроса

 //Строим список значений полей добавляемой записи

 SSQL+="'"+GetTagVal(XNode,"LastName")+"',";

 SSQL+="'"+GetTagVal(XNode,"Name")+"',";

 SSQL+="'"+GetTagVal(XNode,"Phone")+"',";

 SSQL+="'"+GetTagVal(XNode,"Street")+"',";

 SSQL+="'"+GetTagVal(XNode,"House")+"',";

 SSQL+="'"+GetTagVal(XNode,"App")+"',";

 SSQL+="'"+GetTagVal(XNode,"Note")+"'";

 //Формируем текст SQL-запроса для вставки записи

 SSQL="INSERT INTO Phone (LastName,Name,Phone,Street,House,App,Notes) VALUES ("+SSQL+")";

 //Выполняем подготовленный SQL-запрос (добавляем запись в таблицу)

 Connect.Execute(SSQL);

}

//Копирование данных из XML-файла в таблицу Phone

function XMLToBase {

 var XML,Root,NomRec,CurrNode,i;

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

 XML = WScript.CreateObject("Msxml.DOMDocument");

 //Загружаем XML-документ из файла

 XML.load(PathBook);

 //Сохраняем в переменной Root ссылку на корневой элемент документа

 Root=XML.documentElement;

 //Перебираем все дочерние элементы первого уровня вложенности

 //для корневого элемента

 for (i=1; i<=Root.childNodes.length-1;i++) {

//Выделяем в коллекции XML-элементов i-й элемент

CurrNode=Root.childNodes.item(i);

//Вставляем новую запись в таблицу Phone

PersonToTable(CurrNode);

 }

}

//Основная запускная функция

function Main {

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

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

 //Путь к XML-файлу с данными

 PathBook=WshShell.CurrentDirectory+"\\book.xml";

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

 Connect=WScript.CreateObject("ADODB.Connection");

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

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

 SConnect="DSN=PhoneDS";

 //Устанавливаем связь с БД

 Connect.Open(SConnect);

 //Копируем данные из XML-файла в таблицу БД

 XMLToBase;

 //Выводим сообщение об окончании переноса данных

 WshShell.Popup("Данные из XML-файла в таблицу перенесены!", 0,

"Работа с базой данных",vbInformation+vbOkOnly);

}

/******************* Начало **********************************/

Main;

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

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

После того как мы произвели копирование записной книжки в таблицу 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):

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

На границе империй. Том 8

INDIGO
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8

Шайтан Иван 6

Тен Эдуард
6. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
7.00
рейтинг книги
Шайтан Иван 6

Князь Целитель 3

Ткачев Андрей Юрьевич
3. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Князь Целитель 3

Седина в бороду, Босс… вразнос!

Трофимова Любовь
Юмор:
юмористическая проза
5.00
рейтинг книги
Седина в бороду, Босс… вразнос!

Академия

Щепетнов Евгений Владимирович
3. Петр Синельников
Фантастика:
фэнтези
6.20
рейтинг книги
Академия

Феномен

Поселягин Владимир Геннадьевич
2. Уникум
Фантастика:
боевая фантастика
6.50
рейтинг книги
Феномен

Первый среди равных. Книга II

Бор Жорж
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга II

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Воин

Бубела Олег Николаевич
2. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.25
рейтинг книги
Воин

Его звали Тони. Книга 5

Кронос Александр
5. Щенки косуль
Фантастика:
городское фэнтези
технофэнтези
попаданцы
7.00
рейтинг книги
Его звали Тони. Книга 5

Личный аптекарь императора. Том 3

Карелин Сергей Витальевич
3. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора. Том 3

Вечная Война. Книга II

Винокуров Юрий
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Вечная Война. Книга II

На границе империй. Том 10. Часть 8

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 8

Брак по-драконьи

Ардова Алиса
Фантастика:
фэнтези
8.60
рейтинг книги
Брак по-драконьи