This is topic Работа с ActiveX in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


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

Posted by Автономов (Участник № / Member № 3141) on :
 
Бьюсь над выводом на экран оператора списка имен рецептов, для последующего выбора и передачи на загрузку.
Есть желание сделать это с помощью MS Forms 2.0 ComboBox.
Из БД получаем запросом SELECT.
Разобрался как настроить ActiveX элемент для передачи нужной строки в элемент Текс.
А вот как запихать результат выборки из БД в ActiveX элемент не знаю.
Проблема в том, что не програмист, пока.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Выборка из БД попадает в аргументы канала Call. Привязываете эти аргументы к аргументам экрана, а дальше уже аргументы экрана к свойствам ActiveX.
 
Posted by Автономов (Участник № / Member № 3141) on :
 
А если (на пример)выборка вида:

SELECT Table2.Nomer #ARG_000# (весь столбец)
FROM Table2

результат:

задать ARG_000=111
задать ARG_000=1-a1
задать ARG_000=555
задать ARG_000=qqq

как каждое значение привезать к своей кнопке на экране.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вам нужно воспользоваться каналом CALL.ChGroupReq.

quote:
Извлечение столбцов

Допустима следующая конфигурация:

канал CALL.SQLQuery (INPUT, Параметр=0) содержит единственный запрос с конструкцией SELECT;

к аргументу канала CALL.SQLQuery, который используется в качестве подстановки в запросе, привязан атрибут 0, R канала CALL.ChGroupReq.

При CALL.SQLQuery.In=0xFFFF все извлеченные значения столбца последовательно записываются в аргументы канала CALL.ChGroupReq.


 
Posted by Автономов (Участник № / Member № 3141) on :
 
Есть ли ограничения на колличество аргументов в прогамме на ST.
Столкнулся с тем, что при колличестве аргументов более 400 программа не отрабатывает в профайлере, хотя в отладчике все замечательно работает.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
quote:
Количество аргументов канала вызова программы ограничено; в случае 4-байтовых аргументов: в Windows – 1024, в DOS – 256 (т.е. под все аргументы не может быть выделено памяти больше, чем 4k в Windows и 1k в DOS – см. Определение переменных и констант ).
Много ли у Вас текстовых переменных?
 
Posted by Автономов (Участник № / Member № 3141) on :
 
В рабочей программе 102 аргумента типа DINT, 301- REAL, 9-INT, 1-STRING.
Кроме этого в программе присутствуют глобальные переменные типа REAL-3 и DINT-1, представляющие массивы [100].
Добовление еще одного аргумента любого типа приводит к вышеописанной проблемме.
Программа предназначена для передачи рецепта на 1000 переменных из РС в PLC по шине Профибас с использованием 6 каналов.
Сейчас вся программа состаит из 3 кусков, запускаемых последовательно.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
итого около 800 переменных по 4 байта, 9 по 2 байта и 1 на 256 байт, т.е. Вы как раз приблизились к лимиту.
 
Posted by Автономов (Участник № / Member № 3141) on :
 
Спасибо.
Еще вопрос. А почему в отладчике все работает при аргументов: 402-DINT и 601-REAL и глобальных переменных типа REAL-6, DINT-4, представляющие массивы [100]? Ведь получается более 2000 4 байтовых переменных.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отладчик здесь вообще не причем. Память у Вас выделяется при работе в реальном времени.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2