- Справочник
- Базы данных
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));
| на входе | значение | описание |
|---|---|---|
| sqlobject | type: object объект - пользовательская или системная база | |
| undeleted | true | type: 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));
| на входе | значение | описание |
|---|---|---|
| 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).Request([conditions](#request));
| на входе | значение | описание |
|---|---|---|
| sqlobject | type: 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();
| на входе | значение | описание |
|---|---|---|
| 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 ');
Например:
// <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();
| на входе | значение | описание |
|---|---|---|
| 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).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).GetColumnName([index](#getcolumnname));
| на входе | значение | описание |
|---|---|---|
| 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).GetColumnIndex([name](#getcolumnindex));
| на входе | значение | описание |
|---|---|---|
| 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).GetColumnType([index](#getcolumntype));
| на входе | значение | описание |
|---|---|---|
| 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).GetRowValue([column](#getcolumntype), [row](#getcolumntype));
| на входе | значение | описание |
|---|---|---|
| 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).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](#свойства-объекта-recordset)
|Rows|4|Number|число строк в таблице |Columns|12|Number|число столбцов в таблице