Работа с системной базой данных
Системная база данных
Системная база данных создаётся вместе с серверным проектом. Возможно читать данные базы, создавать запросы, но нельзя редактировать базу (удалять таблицы/строки, обновлять данные вручную)
Из чего состоит
Системная база содержит несколько таблиц:- 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); //выводим в лог значения полей }; });
Как создать собственную базу данных, читайте эту статью.
Сервис поддержки клиентов работает на платформе UserEcho