Работа с системной базой данных
Системная база данных
Системная база данных создаётся вместе с серверным проектом. Возможно читать данные базы, создавать запросы, но нельзя редактировать базу (удалять таблицы/строки, обновлять данные вручную)
Из чего состоит
Системная база содержит несколько таблиц:- FLOAT_TAG_HISTORY (содержит поля ID, TAG_ID, DATETIME, QUALITY, VALUE)
- INTEGER_TAG_HISTORY (содержит поля ID, TAG_ID, DATETIME, QUALITY, VALUE)
- QUALITY_LIST (содержит поля ID, NAME)
- STRING_TAG_HISTORY (содержит поля ID, TAG_ID, DATETIME, QUALITY, VALUE)
- TAGS_PASSPORT (содержит поля TAG_ID, TAG_TYPE, NAME, STATUS)
- TAG_STATUSES (содержит поля ID, NAME)
- TAG_TYPES_LIST (содержит поля ID, NAME, TABLE_NAME)
Где найти

Работа с базой через JavaScript
В редакторе скриптов Iridium можно написать запросы, которые будут выводить в лог данные по определённые условиям. Для работы с запросами необходимо изучить язык SQL. Ниже будут рассмотрены часто используемые сценарии работы с базой.var sql = IR.GetDatabase(); // присвоили переменной sql свойства системной базы.
Для того, чтобы создать запрос по базе, необходимо сделать следующее:
var examp = sql.Request('SELECT ...'); // присвоение переменной examp свойства Request базы sql. В скобках и одинарных кавычках пишется тело запроса.Как вывести запрос в лог:IR.Log(examp.Columns); // выводит в лог количество полей (столбцов) в запросе IR.Log(examp.Rows); // выводит в лог количество записей (строк) в запросе IR.Log(examp.GetRowValue(0,0)); //выводит в лог значение ячейки в строке с индексами (строка, столбец); IR.Log(examp.GetColumnName(0)); //выводит имя поля, у которого индекс соответствует числу в скобках.
К примеру, необходимо выбрать из базы информацию о тегах, которые содержат значение <1500;
var i;
var j;
IR.AddListener(IR.EVENT_START,0,function()
{
var sql = IR.GetDatabase(); // присвоили переменной sql свойства системной базы.
var examp = sql.Request('SELECT DISTINCT(ID), VALUE, TAG_ID FROM FLOAT_TAG_HISTORY WHERE VALUE<1500'); // присвоили переменной examp свойство Request базы sql. В скобках и одинарных кавычках пишется тело запроса.
for (i=0;i<examp.Columns;i++) //организовали цикл для вывода значений
for (j=0;j<examp.Rows;j++)
{
IR.Log(examp.GetRowValue(i,j); //выводим в лог значения полей
};
});
Как создать собственную базу данных, читайте эту статью.
Customer support service by UserEcho