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

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

Шрифт:

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

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

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

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

SConnect="DSN=PhoneDS";

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

Connect.Open(SConnect);

После этого происходит вызов функции

XMLToBase
, в которой происходит разбор XML-файла с помощью объектной модели XML DOM (применение XML DOM было подробно описано в главе 7).

//Копирование данных из 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);

 }

}
 

Как мы видим, в функции

XMLToBase
определяется цикл
for
, в котором для каждого XML-элемента, содержащего данные об одном человеке, происходит вызов функции
PersonToTable(XNode)
. В функции
PersonToTable(XNode)
формируется SQL-запрос
INSERT INTO Phone…
, который позволяет вставить в таблицу Phone новую запись с заданными значениями полей, например:

INSERT INTO Phone (LastName, Name, Phone, Street, House, App, Notes)

VALUES ('Иванов', 'Иван', '17-17-17', 'Садовая', '4', '6', 'Очень хороший человек')

Строится строка с SQL-запросом (переменная SSQL) следующим образом:

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

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+")";

После формирования переменной SSQL происходит вызов SQL-запроса с помощью метода

Execute
объекта
Connection
:

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

Connect.Execute(SSQL);

После окончания копирования данных в функции

Main
выводится соответствующее сообщение:

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

WshShell.Popup("Данные из XML-файла в таблицу перенесены!", 0, "Работа с базой данных", vbInformation+vbOkOnly);

Полностью текст сценария InsertRecords.js приведен в листинге 9.1.

Листинг 9.1. Копирование данных из XML-файла в таблицу БД

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

/* Имя: InsertRecords.js */

/* Язык: JScript */

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

/* данных */

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

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

var

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

 BasePath, //Путь к текущему каталогу

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

 NomRec=0, //Счетчик количества записей

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

 Connect; //Экземпляр объекта Connection

  • Читать дальше
  • 1
  • ...
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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