Запись в БД по таймеру

> [HTML Version](dbwrtime.html)

Допустим имеется проект в Simple-Scada и мы настроили подключение к СУБД MySQL к базе данных с именем "my\_database" - теперь в нее сохраняются сообщения, тренды и т.д. Теперь необходимо создать в БД пользовательскую таблицу и записывать в нее значение требуемой переменной с заданной периодичностью.

Для этого сначала нужно создать таблицу, в которую мы будем записывать значения переменной. Для создания таблицы воспользуемся программой "[MySQL Workbench](https://simple-scada.com/help/manual/mysql-workbench.html)". Таблица будет состоять из двух колонок: "timestamp" (отметка времени) и "value" (значение переменной). Откроем нашу БД, кликнем правой кнопкой мыши по разделу "Tables" и в раскрывшемся меню выберем пункт "Create Table":

 _(./images/my_table_mysql_1.png)_



Заполним структуру таблицы в соответствии с требованиями. Назовем таблицу "my\_archive":

 _(./images/my_table_mysql_4.png)_



Теперь необходимо реализовать периодическую запись переменной в таблицу "my\_archive". Для примера, будем записывать переменную температуры с именем "vrTemperature" и типом данных "Double". [Создадим скрипт](via-script-editor.md) с типом события "[Таймер](second-passed.md)" - в параметре скрипта "Интервал" укажем, с какой частотой должен выполняться скрипт, например 60 секунд. Напишем код скрипта:

````
var  
  aQuery: string;  
begin  
  // запрос на вставку в БД значения переменной vrTemperature  
  aQuery := 'INSERT IGNORE INTO \`my\_archive\` (\`timestamp\`, \`value\`) ' +  
            'VALUES (NOW(), ' + QuotedStr(vrTemperature.AsStr) + ')';  
  RunSQL(aQuery, nil, 0);  
end.

````
Сохраним проект. Теперь значение переменной "vrTemperature" будет с заданной периодичностью записываться в созданную нами таблицу.

