Работа с системной базой данных

Системная база данных


Системная база данных создаётся вместе с серверным проектом. Возможно читать данные базы, создавать запросы, но нельзя редактировать базу (удалять таблицы/строки, обновлять данные вручную)


Из чего состоит

Системная база содержит несколько таблиц:


  • 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)

Где найти


Файл базы можно найти через Web - сервер. Для этого необходимо открыть страницу Web - сервера в браузере. Зайти в свой аккаунт, введя свой логин и пароль. Появится главное окно страницы, содержащее вкладки для работы с сервером. Во вкладке Database в первой строке и будет указано местоположение файла базы данных.



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

Dit artikel is nuttig voor 6 personen. Is dit artikel nuttig voor u?