Logo Logo ru
  • iRidi Pro
    Основные компоненты
    • Приложение i3 Pro
    • iRidi Pro Server
    • iRidi Studio
    • iRidium studio v. 1.3.8 (устаревшая версия)
    Java Script в iRidi
    • Руководство
    • Справочник
    • Примеры
    • JS драйвера
    другие
    • Личный Кабинет
    • iRidium Cloud
    • iRidium Transfer
    • Push-уведомления
    • Лучшая практика
    Лицензирование
    • Лицензирование и передача проекта
    • Оффлайн-лицензирование
    • Активация iRidi Pro Server
  • Продукты
    i3 lite
    • Приложение i3 lite
    • Регистрация и лицензирование
    • Сервер
    • Модули
    KNX Home Server
    • Приложение i3 KNX
    • KNX Home Server
    BUS77 HOME SERVER
    • Приложения Bus77 Home и Bus77 Lite
    • Bus77 Home Server
    Решения
    • BYOD - решение для гостиниц
    • Портал жителя - решение для МКД
    iRidi SCADA
    • iRidi SCADA
  • Bus77
    НАСТРОЙКА BUS77
    • Основы Bus77
    • Приложения Bus77 Home и Bus77 Lite
    • Работа с драйвером Bus77 в iRidi Studio
    • Настройка шины Bus77 в iRidi Studio
    ПРОТОКОЛ BUS77
    • Характеристики CAN (Bus77)
    • Описание протокола
    • Исходники на GitHub
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
  • Поддерживаемое оборудование
    Драйверы
    • Список драйверов
    • ProAV драйвера
    • AV & Custom Systems
    • JS драйвера
    • Сторонние драйвера и фриланс
    Протоколы и интерфейсы
    • Голосовое управление
    • 1-Wire
    • BACnet IP
    • Bus77
    • KNX
    • KNX IP BAOS
    • Weinzierl kBerry
    • Microsoft Exchange
    • Modbus
    • MQTT
    • NFC
    • ODBC
    • Onvif
    • SIP
    • SNMP
    • Wake On Lan
    • Z-Wave
    • ZigBee
    Производители
    • AMX
    • AVCiT
    • Beckhoff ADS
    • Biamp Tesira
    • Bluesound
    • Casambi
    • BSS Harman
    • Clipsal
    • ControlArt 7Port
    • Crestron
    • DigiBird
    • Domintell
    • Duotecno
    • EIDE
    • EPSNET
    • Global Cache
    • HDL Buspro
    • Helvar
    • IEAST
    • INELS BUS
    • INELS Wireless
    • Intesis
    • Kleger
    • Kramer VIA
    • Kramer 3000
    • Larnitech
    • Legrand Netatmo
    • LG TV
    • Lutron
    • Lutron Homeworks QS
    • MyHome
    • Nest
    • Novastar
    • Panasоnic PTZ
    • Philips Dynalite
    • PJLink
    • Satel
    • SamsungTV
    • Sonos
    • Somfy
    • SpinetiX
    • Televic Conference
    • TIS
    • Tion
    • URRI
    • Velbus
    • Velocio
    • Vinteo
    • WyreStorm
    • WiiM
    • Xicato
    • Yamaha
    • ZONT
    • Z-Wave.me
    Протестированное оборудование
    • Панель HDL S57
    • Панель HDL S10
    • SIP-домофон
    • Akuvox
    • Arlight
    • Divus
    • QBic TD-1050 PRO
    • QBic TD-1060 Slim
    • QBic TD-1070
    • Sigur
    • Uni-Ubi
    • Velocio
  • Оборудование iRidi

    Серверы
    • HS Сервер
    • ProAV Control Processor Basic
    • ProAV Control Processor Advanced
    • Спецификация контроллеров UMC
    • Настройка контроллера UMC C2
    • Настройка контроллера UMC C3
    • Настройка контроллера HDL IntelliCenter 2 (UMC C4)
    Модули расширения
    • I-PX-RS1
    • I-PX-RS4
    • I-PX-IR3
    KNX
    • KNX Home Server
    • KNX IP Interface
    Панели управления
    • iRidium Panel 7
    • Touch Panel P3
    • Touch Panel P6
    • Touch Panel P8
    • Touch Panel P10
    • Tabletop Touch Panel 10
    • AV Remote Control
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
    • Differences
Сайт iRidium mobile
Содержание
    Инструменты‌
    • Сведения о странице
    • Постоянная ссылка
    • Версия для печати
    • Спецстраницы
    • Связанные правки
    • Ссылки сюда
    Login / Create Account
    Материал из for iRidium developers
    Перейти к: навигация, поиск
    Эта страница является переводом страницы DB API. Перевод выполнен на 100%.

    Other languages:
    English • ‎русский
  • Справочник
  • Базы данных
  • Содержание

    • 1 API iRidium. Базы данных
    • 2 Системная база данных
      • 2.1 IR.GetDatabase()
    • 3 Пользовательская база данных
      • 3.1 new SQL()
    • 4 Методы SQL объекта
      • 4.1 .Open()
      • 4.2 .Execute()
      • 4.3 .Request()
      • 4.4 .Close()
    • 5 Объект RecordSet
    • 6 Методы объекта RecordSet
      • 6.1 .GetRows()
      • 6.2 .GetColumns()
      • 6.3 .GetColumnName()
      • 6.4 .GetColumnIndex()
      • 6.5 .GetColumnType()
      • 6.6 .GetRowValue()
      • 6.7 .Free()
    • 7 Свойства объекта RecordSet

    API iRidium. Базы данных

    Системная и пользовательские SQL базы данных хранят в iRidium Server информацию об изменении переменных Сервера во времени. На основе этой информации возможно произведение выборок, создание графиков и логов

    Версия SQLite: 3.8.7

    Для создания запросов к базе ознакомьтесь с языком SQL.


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

    Доступна только для чтения. Заполняется данными из тегов серверного проекта, в параметрах которых настроено сохранение в базу.

    IR.GetDatabase()

    Получите доступ к системной базе как к SQL объекту, чтобы читать из нее данные.

    Конструктор SQL объекта. Создает SQL объект для работы с базой SQLite

    Синтаксис

    IR.GetDatabase();

    на входе значение описание

    -

    на выходе
    Object [object SQLPrototype] type: Object
    объект - системная база данных


    Пример

    var systembase = IR.GetDatabase();
    IR.Log(systembase) // [object SQLPrototype]

    системная база доступна только для чтения


    Пользовательская база данных

    Доступна для чтения, записи, редактирования, удаления. Создайте свою собственную базу с помощью конструктора и заполняйте с помощью методов SQL объекта.

    new SQL()

    Конструктор SQL объекта для создания пользовательской базой данных SQLite

    Синтаксис

    new SQL();

    на входе значение описание

    -

    на выходе
    Object [object SQLPrototype] type: Object
    объект - пользвательская база данных


    Пример

    var mybase = new SQL(); 
    IR.Log(mybase); // [object SQLPrototype]

    чтобы обратиться к объекту, запишите его в переменную



    Методы SQL объекта

    Для формирования пользовательской базы данных создайте SQL объект и запишите в переменную (назовем ее database). К объекту можно применить методы:


    .Open()

    открыть (создать) файл базы данных

    Синтаксис

    sqlobject.Open(file, undeleted);

    на входе значение описание
    sqlobject type: object
    объект - пользовательская или системная база
    undeleted true type: boolean
    тип папки:
    false - удаляемая папка
    ...\iRidium pro documents\Server\Documents\
    true - неудаляемая папка
    ...\iRidium pro documents\Server\Database\UserDB\
    file "MyBase.db" type: string
    имя файла базы данных
    на выходе

    -


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
       mybase.Open('MyBase.db', true);
       mybase.Execute("BEGIN");
       mybase.Execute('CREATE TABLE Info(ID int, Value float, Name string)');
       mybase.Execute("COMMIT");  
       mybase.Close();
    });

    Если такого файла нет, он будет создан в папке документов проекта, например:
    C:\Users\User\Documents\iRidium pro documents\Server\Documents\<Project Name>\MyBase.db
    или
    C:\Users\User\Documents\iRidium pro documents\Server\Database\UserDB\<Project Name>\MyBase.db


    .Execute()

    выполнить действие с базой. Возможные действия описаны в языке SQL

    Синтаксис

    sqlobject.Execute(action);

    на входе значение описание
    sqlobject type: onbject
    объект - пользовательская или системная база
    action "BEGIN" type: string
    действие с базой
    на выходе

    -


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
       mybase.Open('MyBase.db');
       mybase.Execute("BEGIN");
       mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
       mybase.Execute("COMMIT");  
       mybase.Close();
    });

    Чтобы запись в базу происходила быстро и корректно, необходимо использовать логические команды:

    mybase.Execute("BEGIN");   // начать работу с базой
    ...
    // действия с базой
    ...
    mybase.Execute("COMMIT");  // закончить работу с базой




    .Request()

    запрос к базе, позволяет указать условия выборки из базы. Правила формирования условий описаны в языке SQL

    Синтаксис

    sqlobject.Request(conditions);

    на входе значение описание
    sqlobject type: onbject
    объект - пользовательская или системная база
    conditions 'SELECT * FROM Info WHERE Value<100' type: string
    тело запроса к базе
    на выходе
    RecordSet Object [object RecordSetPrototype] type: object
    объект RecordSet, содержит результат запроса


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN");  
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');  
          IR.Log(RecordSetObj.GetColumnName(0)+'\t'+RecordSetObj.GetColumnName(1)+'\t'+RecordSetObj.GetColumnName(2));
          mybase.Execute("COMMIT");
          mybase.Close();
    });

    в ответ на запрос получаем объект RecordSet, который содержит результат запроса


    .Close()

    завершить работу с базой

    Синтаксис

    sqlobject.Close();

    на входе значение описание
    sqlobject type: object
    объект - пользовательская или системная база
    на выходе

    -


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Close();
    });

    Перед завершением работы с базой сохраните изменения командой mybase.Execute("COMMIT")



    Объект RecordSet

    Объект RecordSet - это выборка записей из базы данных SQL, которую мы получаем по запросу к базе:

    var RecordSetObj = sqlobject.Request('SELECT <request>');

    Например:

    // получить все записи из таблицы Info, где поле Value < 100
    var RecordSetObj = database.Request('SELECT * FROM Info WHERE Value < 100');
    IR.Log(RecordSetObj); // [object RecordSetPrototype]

    Объект RecordSet обладает уникальными свойствами, к нему можно применить методы, специфичные для объекта RecordSet.


    Методы объекта RecordSet

    RecordSet - это выборка записей из базы данных SQL, которую мы получаем по запросу к базе. К объекту RecordSet можно применить методы работы со строками и столбцами базы, можно запросить свойства объекта.


    .GetRows()

    возвращает число строк в выборке RecordSet

    Синтаксис

    RecordSetObj.GetRows();

    на входе значение описание
    RecordSetObj type: object
    объект RecordSet, содержит выборку, полученную по запросу из базы данных
    на выходе
    rows 1 type: number
    количество строк в выборке


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN");
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');  
          IR.Log(RecordSetObj.GetRows());
          mybase.Execute("COMMIT");
          mybase.Close();
    });





    .GetColumns()

    возвращает число столбцов в выборке RecordSet

    Синтаксис

    RecordSetObj.GetColumns();

    на входе значение описание
    RecordSetObj type: object
    объект RecordSet, содержит выборку, полученную по запросу из базы данных
    на выходе
    columns 1 type: number
    количество столбцов в выборке


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN");
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');  
          IR.Log(RecordSetObj.GetColumns());
          mybase.Execute("COMMIT");
          mybase.Close();
    });





    .GetColumnName()

    имя столбца (индекс столбца: 0...n)

    Синтаксис

    RecordSetObj.GetColumnName(index);

    на входе значение описание
    RecordSetObj type: object
    объект RecordSet, содержит выборку, полученную по запросу из базы данных
    index 0 type: number
    индекс столбца, 0...n
    на выходе
    column name ID type: string
    имя столбца


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN");
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');     
          IR.Log(RecordSetObj.GetColumnName(0)+ '\t'+ RecordSetObj.GetColumnName(1)+ '\t'+ RecordSetObj.GetColumnName(2));
          mybase.Execute("COMMIT");
          mybase.Close();
    });





    .GetColumnIndex()

    выдаёт индекс столбца по его имени

    Синтаксис

    RecordSetObj.GetColumnIndex(name);

    на входе значение описание
    RecordSetObj type: object
    объект RecordSet, содержит выборку, полученную по запросу из базы данных
    name 'id' type: string
    имя столбца
    на выходе
    index 0 type: number
    индекс столбца (нумерация столбцов начинается с 0)


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN");
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');  
          IR.Log(RecordSetObj.GetColumnIndex('Value')); // 1
          mybase.Execute("COMMIT");
          mybase.Close();
    });





    .GetColumnType()

    тип столбца: int (1), float (2), string (3). Индекс столбца: 0...n

    Синтаксис

    RecordSetObj.GetColumnType(index);

    на входе значение описание
    RecordSetObj type: object
    объект RecordSet, содержит выборку, полученную по запросу из базы данных
    index 0 type: number
    индекс столбца, 0...n
    на выходе
    type 1 type: number
    тип данных:
    • 1 - int
    • 2 - float
    • 3 - string


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN");
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');  
          IR.Log(RecordSetObj.GetColumnType(0)+ '\t'+ RecordSetObj.GetColumnType(1)+ '\t'+ RecordSetObj.GetColumnType(2));
          mybase.Execute("COMMIT");
          mybase.Close();
    });





    .GetRowValue()

    значение в ячейке таблицы, выбранное по индексу столбца и строки (индексы: 0...n)

    Синтаксис

    RecordSetObj.GetRowValue(column, row);

    на входе значение описание
    RecordSetObj type: object
    объект RecordSet, содержит выборку, полученную по запросу из базы данных
    column 0 type: number
    индекс столбца, 0...n
    row 0 type: number
    индекс строки, 0...n
    на выходе
    data 1 type: number, string
    значение в ячейке


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN"); 
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');  
          IR.Log(RecordSetObj.GetRowValue(0,0)+ '\t'+ RecordSetObj.GetRowValue(1,0)+ '\t'+ RecordSetObj.GetRowValue(2,0));
          mybase.Execute("COMMIT");
          mybase.Close();
    });





    .Free()

    освобождает память от выборки RecordSet. Используется для оптимизации использования памяти.

    Синтаксис

    RecordSetObj.Free();

    на входе значение описание
    RecordSetObj type: object
    объект RecordSet, содержит выборку, полученную по запросу из базы данных
    на выходе

    -


    Пример

    var mybase = new SQL();
    IR.AddListener(IR.EVENT_START,0,function()
    {
          mybase.Open('MyBase.db');
          mybase.Execute("BEGIN");
          mybase.Execute('CREATE TABLE Info(ID INT, Value REAL, Name TEXT)');
          mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,19.9,"sunny day")'); 
          var RecordSetObj = mybase.Request('SELECT * FROM Info WHERE ID<30');  
          mybase.Execute("COMMIT");
          mybase.Close();
          RecordSetObj.Free();
    });





    Свойства объекта RecordSet

    RecordSetObj.property

    Rows 4 type: Number
    число строк в таблице
    Columns 12 type: Number
    число столбцов в таблице
    Источник — «https://dev.iridi.com/index.php?title=DB_API/ru&oldid=58704»
    Категория:
    • Инструкции
    О нас
    Компания
    Команда
    История
    Философия
    Награды
    Партнерство
    Наши партнеры
    Партнерские программы
    Подать заявку на партнерство
    Продукты
    iRidium pro
    iRidium lite
    iRidium gate
    iRidium server
    Загрузки
    iRidium pro
    iRidium lite
    Другие версии
    Маркетинговые материалы
    Поддержка
    Онлайн курсы/Видео
    Рекомендуемое оборудование
    Другие версии
    iRidium pro
    Документация
    FAQ
    Форум
    iRidium lite
    Документация
    Форум
    Проекты
    Типовые проекты
    Умные здания
    Умные дома
    Специальные решения
    Найти дилера
    Новости
    Youtube
    Twitter
    VK
    Logo
    contact@iridi.com
    +7 (499) 322-73-29

    Политика конфиденциальности