Эта страница является
переводом страницы
DB API. Перевод выполнен на 100%.
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 число столбцов в таблице
|