This is topic Использование SQL-запросов в программе in forum Работа с приложениями (ODBC-SQL/OPC/DDE) at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/41/t/000103.html

Posted by Чижиков Андрей (Участник № / Member № 7067) on :
 
Доброго времени суток!
Возник вопрос по использованию SQL запросов в подпрограмме на ST.
Как получить значение по результату работы SQL запроса SELECT.
Например есть запрос к БД типа:
code:
    
SELECT
Table1.Parametr1 #ARG_000#
FROM
Table1
WHERE
Table1.Nomer = 2

и кнопка при нажатии которой выполняется определенная подпрограмма в которой необходимо выполнить этот запрос и использовать результат для дальнейших вычислений. В программе
code:
PROGRAM
VAR_INOUT База_данных_1_1_In : REAL; END_VAR

База_данных_1_1_In=1;

END_PROGRAM

А вот дальше не знаю как получить результат выполнения запроса. [duno / незнайка]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
После передачи 1
База_данных_1_1_In=1;

надо проверять автоматический сброс значения База_данных_1_1_In после завершения запроса.

Затем уже можно обрабатывать полученные данные.

Программа должна считывать аргументы канала База_данных_1_1 и анализировать их.
Для этого можно, например, связать соответствующие аргументы программы с аргументами канала База_данных_1_1.
Как вариант - использовать специальные функции ST-программы (см. документацию):

"//чтение атрибута канала (целое со знаком,

//4 байта)

DINT getAttributeI(UDINT ch_id, UINT attr_id)

//чтение атрибута канала (вещественное, 4 байта)

REAL getAttributeF(UDINT ch_id, UINT attr_id)


"
 
Posted by nordoil (Участник № / Member № 7691) on :
 
6.Здравствуйте.При попытке получить значение из «подключение к БД» (запись во «входное значение» «1») процедура получения одной строчки затягивается до минут. Почему при выполнении в среде IDE на получение той же записи уходит примерно 0.5 сек., а при выполнении в профайлере то же самое затягивается на минуты?
(ЗЫ: за один раз выполняется только один вызов «подключение к БД», использована ST программа последовательного опроса )
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Какую БД Вы используете?
Сколько записей в таблице БД?
Как заданы условия выборки данных из таблицы?
Как реализуется считывание строки непосредственно из IDE?
Можете прислать проект и БД на адрес техподдержки?
 
Posted by Nico (Участник № / Member № 5342) on :
 
Если отключить программу на ST и вручную записать 1 во входное значение тоже 1 мин будет
 
Posted by nordoil (Участник № / Member № 7691) on :
 
1) mssql
2) 15 записей
3) select top 1 t1.value #par1#, t1.date #par2# from t1,t2 where t1.id=t2.id_t1 and t2.name='#par3#'

4)из IDE убираю [and t2.name='#par3#'] и нажимаю на выполнить
5)выслал на xxx

[ 29.08.2019, 14:27: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Письмо получили. Почтой выслали рекомендации по дополнительной диагностике.
 
Posted by VlasovV (Участник № / Member № 7703) on :
 
В моем проекте используется несколько подключений к БД, выполняющих различные функции (чтение начальных параметров, запись в СПАД, изменение имен объектов ИТП). Во всех я указал "начальные" ЛОГИН/ПАРОЛЬ. При смене пароля в процессе эксплуатации как поменять ЛОГИН/ПАРОЛЬ для всех подключений сразу?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В настоящее время штатных возможностей для проведения таких процедур нет.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2