This is topic Извлечение строк из БД 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/000087.html

Posted by Kollega (Участник № / Member № 4097) on :
 
Добрый день, уважаемая техподдержка! Так как, ГЭ "База данных" находится в зачаточном состоянии(надеюсь, скоро это будет исправлено), то для отображения данных таблицы приходится использовать множество ГЭ "Текст". В связи с этим возник вопрос по извлечению строк. Итак,
"Допустима следующая конфигурация:

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

В этом случае по команде CALL.SQLQuery.In=0xFFFF выполняется запрос, после чего в CALL.SQLQuery.In может быть многократно записано число, в котором должен быть установлен бит 15 (0x8000), а биты 0-12 задают номер строки, извлекаемой из полученной выборки. Значения извлеченной строки записываются в аргументы канала CALL.SQLQuery, используемые в виде подстановок в запросе."

В ручном режиме все работает. Например, для одной строки дважды послать число не проблема. Но если, например, 12 строк, то как я понял, надо писать управляющую программу, которая бы последовательно извлекала данные каждой строки и заполняла бы ими мою таблицу. Согласитесь это немного не удобно. Поэтому, хотелось бы знать есть ли более легкий алгоритм извлечения заданного количества строк?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В том же разделе документации предыдущий параграф "Извлечение столбцов" описывает, как можно единовременно считать все нужные строки (каждый столбец таблицы - в свой канал CALL.ChGroupReq).
 
Posted by DmFM (Участник № / Member № 6479) on :
 
Добрый день.
Уже долгое время (была тема в бесплатной ветке форума, так уж вышло под другим логином) пытаюсь решить следующую проблему.

Согласно документации сделал извлечение нескольких строк из БД в каналы CALL.ChGroupReq. Через окно "Компоненты" в МРВ проверил, аргументы в CALL.ChGroupReq создаются и заполняются данными.

Далее хочу заполнить этими данными таблицу, составленую из ГЭ Текст.

Числовые данные из CALL.ChGroupReq я извлекал в скриптах функциями getAttributeI. Но для строковых данных такой метод не подойдет.

Вопрос каким образом я могу извлечь строки из каналов и передать их в аргументы экрана, чтобы отобразить в ГЭ Текст?
 
Posted by Nico (Участник № / Member № 5342) on :
 
отобразить целиком аргументы Chgr через
привязку к атрибутам с номерами > 255
 
Posted by DmFM (Участник № / Member № 6479) on :
 
quote:
Отправитель / Originally posted by Nico:
отобразить целиком аргументы Chgr через
привязку к атрибутам с номерами > 255

Извиняюсь, ничего не понял.
У Chgr вроде нет аттрибутов с номером больше 255.
В каком месте про это можно прочитать?
 
Posted by Nico (Участник № / Member № 5342) on :
 
Subnum .
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2