This is topic Работа с ActiveX in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Бьюсь над выводом на экран оператора списка имен рецептов, для последующего выбора и передачи на загрузку. Есть желание сделать это с помощью 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
как каждое значение привезать к своей кнопке на экране.
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 :
Отладчик здесь вообще не причем. Память у Вас выделяется при работе в реальном времени.