4.2.2.3.1. Примеры
1. Запрос на получение истории изменения значений сигнала "NPS.MNS1.PT001_1.Value".
SELECT * FROM nodes_history h JOIN nodes n ON n.NodeId=h.NodeId WHERE n.TagName='NPS.MNS1.PT001_1.Value'
|
Результат запроса в MS Excel (значения сигнала отображаются в столбце "valdouble"):
2. Запрос на получение истории изменения значений сигнала "NPS.MNS1.PT001_1.Value" за промежуток времени с 04:48 до 04:49 23 июня 2021 года (включая граничные значения):
SELECT * FROM nodes_history h JOIN nodes n ON n.NodeId=h.NodeId WHERE (n.TagName='NPS.MNS1.PT001_1.Value') AND (h.time BETWEEN '2021-06-23 04:48' AND '2021-06-23 04:49')
|
Результат запроса в MS Excel (в столбце "recordtype" отображается тип значения - граничная точка или значение внутри интервала):
3. Запрос на получение истории изменения значений сигнала "NPS.MNS1.PT001_1.Value" за промежуток времени с 04:48 до 04:49 23 июня 2021 года (без граничных значений):
SELECT * FROM nodes_history h JOIN nodes n ON n.NodeId=h.NodeId WHERE (n.TagName='NPS.MNS1.PT001_1.Value') AND (h.time BETWEEN '2021-06-23 04:48' AND '2021-06-23 04:49') AND (recordType != 'ubound') AND (recordType != 'lbound')
|
Результат запроса в MS Excel:
4. Для получения истории изменений состояний задвижки "ZDV_007_8_1" за промежуток времени с 04:30 до 04:50 29 января 2021 года создайте запрос с выборкой по столбцам "Сообщение" и "Время возникновения события":
SELECT message, activetime FROM event_history eh WHERE (eh.source='NPS.UZA8.ZDV_007_8_1.Msgs') AND (eh.time BETWEEN '2021-01-29 04:30' AND '2021-01-29 04:50')
|
Результат запроса в MS Excel:
5. Запрос на получение текущего значения сигнала "NPS.BIK172_6.BB97n.Cmd":
SELECT * FROM nodes_values v JOIN nodes n ON n.NodeId=v.NodeId WHERE n.TagName='NPS.BIK172_6.BB97n.Cmd'
|
Результат запроса в MS Excel (текущее значение сигнала отображается в столбце "valuint"):
6. Запрос на изменение текущего значения сигнала "NPS.BIK172_6.BB97n.Cmd" на значение "100":
UPDATE nodes_values v SET valint=100 FROM nodes n WHERE n.nodeid=v.nodeid AND n.TagName='NPS.BIK172_6.BB97n.Cmd'
|
После выполнения данной команды программа, через которую осуществляется SQL-доступ, выдает сообщение о выполнении инструкции SQL. Пример сообщения программы Microsoft Query:
Результат запроса на получение текущего значения сигнала "NPS.BIK172_6.BB97n.Cmd" (текущее (измененное) значение сигнала отображается в столбце "valuint"):
7. Для получения истории изменений состояний всех задвижек узла "UZA12 НПС" создайте запрос с выборкой по столбцам "Время возникновения события", "Имя сигнала" и "Сообщение":
SELECT activetime, source, message FROM event_history WHERE source LIKE '%UZA12.%'
|
Результат запроса в MS Excel:
8. Для получения истории событий по задвижкам, находящимся в состоянии Открыта, за промежуток времени с 00:00 20 февраля 2021 года до 23:00 21 февраля 2021 года создайте запрос с выборкой по столбцам "Время возникновения события", "Имя сигнала" и "Сообщение":
SELECT activetime, source, message FROM event_history eh WHERE (eh.time BETWEEN '2021-02-20 00:00' AND '2021-02-21 23:00') AND (message LIKE '%Открыта');
|
Результат запроса в MS Excel:
Добавление данных в БД
В этом примере добавляется новая запись в таблицу "testtables" для столбцов "Id", "Value", "Category", "Text" с указанными значениями.
Table_1.TableModel_1.SqlQuery_1.Connect();// Установка соединения с базой данных
if ( Table_1.TableModel_1.SqlQuery_1.ConnectionState == 1 ) { // Проверка соединения с базой данных
Table_1.TableModel_1.SqlQuery_1.Text = "INSERT INTO testtables (Id, Value, Category, Text) VALUES (1, 6, 'Even', 'Six')"; // Установка текста SQL-запроса
Table_1.TableModel_1.SqlQuery_1.Execute( ); // Выполнение запроса INSERT
}
else
Text_1.Text="ConnectError"
|
Обновление данных в БД
В этом примере обновляется значение столбца "Value" в строке, где значение столбца "Id" равно "2".
Table_1.TableModel_1.SqlQuery_1.Connect();// Установка соединения с базой данных
if (Table_1.TableModel_1.SqlQuery_1.ConnectionState == 1) { // Проверка соединения с базой данных
Table_1.TableModel_1.SqlQuery_1.Text = "UPDATE testtables SET Value = 343 WHERE Id = 2"; // Установка текста SQL-запроса
Table_1.TableModel_1.SqlQuery_1.Execute( ); // Выполнение запроса UPDATE
}
else
Text_1.Text="ConnectError"
|
Получение данных из БД
В этом примере получены все данные из таблицы "testtables".
Table_1.TableModel_1.SqlQuery_1.Connect();// Установка соединения с базой данных
if ( Table_1.TableModel_1.SqlQuery_1.ConnectionState == 1 ) { // Проверка соединения с базой данных
Table_1.TableModel_1.SqlQuery_1.Text = "SELECT * from testtables"; // Установка текста SQL-запроса
Table_1.TableModel_1.SqlQuery_1.Execute( ); // Выполнение запроса SELECT
Table_1.TableModel_1.BeginReadAsync( ); // Полученными данными заполняем таблицу
}
else
Text_1.Text="ConnectError"
|
Удаление данных из БД
В этом примере удаляются все строки из таблицы "testtables", где значение столбца "Category" равно "Even".
Table_1.TableModel_1.SqlQuery_1.Connect();// Установка соединения с базой данных
if ( Table_1.TableModel_1.SqlQuery_1.ConnectionState == 1 ) { // Проверка соединения с базой данных
Table_1.TableModel_1.SqlQuery_1.Text = "DELETE FROM testtables WHERE Category = 'Even'";
// Установка текста SQL-запроса
Table_1.TableModel_1.SqlQuery_1.Execute( ); // Выполнение запроса DELETE
}
else
Text_1.Text="ConnectError"
|