Javascript.Scripting Data Base
Материал из Hivext Wiki
Javascript - База данных
Рассмотрен пример взаимодействия с базой данных через сервис Структур.
/*
Название: Data Base
Описание: Пример работы с базой данных.
*/
// Для удобства сохраним объекты сервисов в переменных с короткими именами.
var DataBase = hivext.data.base;
var sLocalSignature = hivext.local.GetDeviceSignature(); // Получаем локальную подпись.
/*
Создадим тип данных Message, в котором будем хранить информацию.
Типы данных можно создавать "налету" программно или заранее через интерфейс Hive IDE или API Console.
В примере рассмотрим программное создание типа с помощью метода DefineType.
*/
// Подготовим описание типа.
var CMessage = {
sTitle : "string(256)",
sText : "text",
CreateDate : "date", // Дата создания, при создании объекта заполнится автоматически, если не будет указано явно.
sAuthor : "string(64)"
}
// Метод DefineType принимает описания типов в формате JSON, поэтому переведем
// объект CMessage с помощью метода toJSON в JSON формат.
var oResponse = DataBase.DefineType(appid, sLocalSignature, "Message", CMessage);
if(oResponse.result == 0 || oResponse.result == 1002) { // 0 - тип создан успешно, 1002 - тип уже создан.
// Создадим объект.
var oMessage = {
sTitle : "Hello world",
sText : "This is my message to the world!",
sAuthor : "Tenshi"
}
oResponse = DataBase.CreateObject(appid, sLocalSignature, "Message", oMessage);
if(oResponse.result == 0) { // Объект создан успешно.
return oResponse.id; // Покажем идентификатор только что созданного объекта.
} else { /* Ошибка при создании объекта. */ }
} else { /* Ошибка при создании типа. */ }
return;
/*
Название: Data Base 2
Описание: Пример работы с базой данных. Запрос объектов из базы и вывод в поток.
*/
// Для удобства сохраним объекты сервисов в переменных с короткими именами.
var DataBase = hivext.data.base;
var sAppid = hivext.local.GetParam("appid");
var sLocalSignature = hivext.local.GetDeviceSignature(); // Получаем подпись локального устройства.
// Запрашиваем объекты Message из базы данных.
var oMessages = DataBase.GetObjects(sAppid, sLocalSignature, "Message");
if(oMessages.result == 0) {
for(var i=0; i<oMessages.objects.length; i++) {
var sOut = "id = " + oMessages.objects[i].get("id")
+ "\nsTitle = " + oMessages.objects[i].get("sTitle")
+ "\nsText = " + oMessages.objects[i].get("sText") + "\n";
hivext.local.out.Write(sOut);
}
hivext.local.out.Flush();
}
