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


Создание собственной базы данных

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


var mybase= new SQL(); 
где mybase - переменная,
new SQL() - определение базы в Iridium JS.



Теперь необходимо создать файл базы, чтобы дальше с ней работать.



mybase.Open('Example.db');
где .Open - открытие файла базы. Если такого файла нет, то он будет создан в папке документов программы, например C:\Users\UserName\Documents\iRidium mobile 3\Settings\ Server\Database\'Example.db' - имя базы с расширением.



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



mybase.Execute("BEGIN");
...
// Операции с базой; 
...
mybase.Execute("COMMIT"); 
mybase.Close();

где .Execute - функция выполнения действия с базой,
"BEGIN" - начало записи в базу,
"COMMIT" - конец записи в базу,
.Close() - Закрытие базы;



Созданная база пустая. Она не содержит ни значений, ни таблиц, ни названий полей. Чтобы создать таблицу в базе, необходимо использовать



mybase.Execute('CREATE TABLE Info(ID int, Value double, Name string)');



где CREATE TABLE - функция создания таблицы с именем Info,
ID, Value, Name имена полей таблицы, которые будут содержать значения типа int, double, string соответственно. Вы можете менять имена полей, но вы должны обязательно указывать тип поля.



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



mybase.Execute('INSERT INTO Info(ID, Value, Name) VALUES(1,2.5,"sunny day")'); 

где INSERT INTO осуществляет запись в таблицу Info, а именно в поля ID, Value, Name.
VALUES - параметры, которые будут записаны в поля. Соответственно в поле ID будет записано число 1, в поле Value будет записано число 2.5, в поле Name текст "sunny day".



Параметров в скобках после VALUE должно быть столько же, сколько и объявленных полей в скобках после INSERT INTO <Имя таблицы>().



Существуют некоторые особенности записи значений в поля таблицы.
Например, если вы хотите записать текст, то синтаксис будет таким:



VALUES("Iridium", "Mobile"); (Текст пишется в двойных кавычках).



Если вы хотите записать число, то оформлять следует так:



VALUES( 1, 2.5, 36.788); (Число пишется без кавычек, десятичное число пишется с точкой)



Если необходимо записать значение переменной, то для неё используют:



// var CV; (Объявленные ранее переменные)
// var V;
...
VALUES( '+CV+', '+V+' );
Сначала ставится одинарная кавычка, затем плюс, потом сама переменная, далее снова плюс и опять одинарная кавычка.


Удаление таблицы, добавление полей


Чтобы удалить таблицу из базы, необходимо воспользоваться следующим методом.


mybase.Execute('DROP TABLE Testing');


Чтобы добавить новое поле в уже созданную таблицу, следует воспользоваться методом:

mybase.Execute('ALTER TABLE Testing DROP COLUMN New_column');


Создание запросов

В редакторе скриптов Iridium можно написать запросы, которые будут выводить в лог данные по определённые условиям. Для работы с запросами необходимо изучить язык SQL. Ниже будут рассмотрены часто используемые сценарии работы с базой.


var mybase= new SQL(); // присвоили переменной sql свойства системной базы.

Для того, чтобы создать запрос по базе, необходимо сделать следующее:


var this_request = mybase.Request('SELECT ...'); // присвоение переменной this_request свойства Request базы mybase. В скобках и одинарных кавычках пишется тело запроса.
Как вывести запрос в лог:
// выводит в лог количество полей (столбцов) в запросе
IR.Log(this_request.Columns); 

// выводит в лог количество записей (строк) в запросе
IR.Log(this_request.Rows);
 
//выводит в лог значение ячейки в строке с индексами (строка, столбец);
IR.Log(this_request.GetRowValue(0,0)); 

//выводит имя поля, у которого индекс соответствует числу в скобках.
IR.Log(this_request.GetColumnName(0)); 

К примеру, необходимо выбрать из базы информацию о тегах, которые содержат значение <10;
function request()
{  
    //Открытие базы. Если такой базы нет, то она будет создана автоматически
    mybase.Open('Example.db');
   
    //Начало работы с базой
    mybase.Execute("BEGIN");
   
    // Создание переменной и присвоение ей метода запроса Request
    var this_request = mybase.Request('SELECT * FROM Info WHERE Value<10');

    //выводит имя поля, у которого индекс соответствует числу в скобках.
    IR.Log(this_request.GetColumnName(0)+ '\t'+ this_request.GetColumnName(1)+ '\t'+     this_request.GetColumnName(2)); 

    for (i=0;i<this_request.Rows;i++) 
        //вывод в лог значений полей
        IR.Log(this_request.GetRowValue(0,i)+ '\t'+ this_request.GetRowValue(1,i)+ '\t'+ this_request.GetRowValue(2,i));

    //Конец работы с базой  
    mybase.Execute("COMMIT"); 
  
    //Закрытие базы       
     mybase.Close();
}
Чтобы подробно разобрать работу с базой, скачайте пример проекта.

my_DataBase_RU.sirpz

my_DataBase_EN.sirpz


Как работать с системной базой данных читайте здесь.







Эта статья была полезна для 5 людей. Эта статья помогла Вам?

Сервис поддержки клиентов работает на платформе UserEcho