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();

}​

Следующие примеры

Личные инструменты