Перейти к основному содержимому

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

Версия 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).Open([file](#open), [undeleted](#open));

на входезначениеописание
sqlobjecttype: object
объект - пользовательская или системная база
undeletedtruetype: boolean
тип папки:
false - удаляемая папка
...\iRidium pro documents\Server\Documents<br />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\MyBase.db
    или
    C:\Users\User\Documents\iRidium pro documents\Server\Database\UserDB\MyBase.db

.Execute()

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

Синтаксис

[sqlobject](#execute).Execute([action](#execute));

на входезначениеописание
sqlobjecttype: 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).Request([conditions](#request));

на входезначениеописание
sqlobjecttype: onbject
объект - пользовательская или системная база
conditions'SELECT * FROM Info WHERE Value тело запроса к базе
на выходе
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).Close();

на входезначениеописание
sqlobjecttype: 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 ');

Например:

// <translate><!--T:65-->
получить все записи из таблицы Info, где поле Value < 100</translate>
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).GetRows();

на входезначениеописание
RecordSetObjtype: object
объект RecordSet, содержит выборку, полученную по запросу из базы данных
на выходе
rows1type: 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).GetColumns();

на входезначениеописание
RecordSetObjtype: object
объект RecordSet, содержит выборку, полученную по запросу из базы данных
на выходе
columns1type: 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).GetColumnName([index](#getcolumnname));

на входезначениеописание
RecordSetObjtype: object
объект RecordSet, содержит выборку, полученную по запросу из базы данных
index0type: number
индекс столбца, 0...n
на выходе
column nameIDtype: 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).GetColumnIndex([name](#getcolumnindex));

на входезначениеописание
RecordSetObjtype: object
объект RecordSet, содержит выборку, полученную по запросу из базы данных
name'id'type: string
имя столбца
на выходе
index0type: 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).GetColumnType([index](#getcolumntype));

на входезначениеописание
RecordSetObjtype: object
объект RecordSet, содержит выборку, полученную по запросу из базы данных
index0type: number
индекс столбца, 0...n
на выходе
type1type: 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).GetRowValue([column](#getcolumntype), [row](#getcolumntype));

на входезначениеописание
RecordSetObjtype: object
объект RecordSet, содержит выборку, полученную по запросу из базы данных
column0type: number
индекс столбца, 0...n
row0type: number
индекс строки, 0...n
на выходе
data1type: 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).Free();

на входезначениеописание
RecordSetObjtype: 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](#свойства-объекта-recordset)


|Rows|4|Number|число строк в таблице |Columns|12|Number|число столбцов в таблице