RomanUI
Junior Member / Новичок
Участник № / Member № 4022
отправлено / posted
Ситуация такая: нужно вывести на экран значение текстового поля базы данных (от 0 до 255 символов). В запросе создал аргумент типа "string" и привязал его к ГЭ "Текст". Выводится максимум первые 4 символа.
отправлено / posted
Не привязанный к атрибуту канал аргумент типа STRING в ТМ6 имеет максимальный размер 4 символа. Передавайте строку через комментарий любого канала. Правда атрибут "Комментарий" максимум 39 символов. Длиннее нет. Тут уже обсуждалась тема на днях по отображению длинных строк - смотрите последние темы по форуму: http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000761.html
[ 23.08.2011, 10:19: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
IP / IP: IP адрес / IP address |
Данила
Junior Member / Новичок
Участник № / Member № 5356
отправлено / posted
Делаю по справке "Запись длинных строк".
Длинные (до 64 байт) строки могут быть записаны в аргументы каналов CALL.STRING, ... Аргументы не должны иметь привязок и иметь тип данных STRING.
для отображения значения аргумента с помощью ГЭ Текст нужно к аргументу экрана (тип данных должен быть STRING) привязать атрибут 1,A канала и задать формат Generic.
Создал канал Call два аргумента в нем типа стринг, в поле значение по умолчанию 'сообщение1', 'сообщение2' во втором. ГЭ текст привязал к аргументу экрану типа стринг привязанный к аппаратному значению CALL, маняю реальноре значение CALL, выдает 4 первых символа.
Справка "При связи аргументов STRING каналов CALL можно передать не более четырех символов, если ни один из этих аргументов не привязан к строковому атрибуту произвольного канала."
Привязываю аргументы канала CALL к созданному еще одному каналу CALL2 комментарию канала.
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
Канал CALL.string сохраняет значения аргументов и считывает их при старте узла из файла (имя файла совпадает с именем канала).
[ 22.08.2011, 11:48: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 873 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Реализовывать нужно первым способом. Если после старта МРВ ввести новые значения аргументов в канал CALL.STRING, то они должны отобразиться на экране.
Чтобы при старте МРВ в ГЭ "Текст" отображалось более 4-х символов, можно создать текстовый файл с именем, совпадающим с именем канала CALL.STRING и в нем задать значения, которые будут отображаться при старте узла (смотрите раздел справочной системы "Запись длинных строк").
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Данила
Junior Member / Новичок
Участник № / Member № 5356
Данила
Junior Member / Новичок
Участник № / Member № 5356
отправлено / posted
возникла проблема при добавлении в программу двух каналов CALL.String по 10 аргументов в каждом. В программе используется вызов пользовательского блока FBD в котором как раз происходит вывод значений в аргументы каналов Call.String. При запуске профайлера программа выключается, состояние программы "1", она сразу выключена. Есть какое то ограничение на использование Call.String в программе?
Сообщения / Posts 14 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Данила
Junior Member / Новичок
Участник № / Member № 5356
отправлено / posted
Тип аргументов CALL.STRING в программе OUT в канале In/Out. Сделал аргументы в программе In/Out как в канале, все равно программа выключается, пробовал установить состояние в "0", сбрасывает в "1".
Сообщения / Posts 14 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
под все аргументы не может быть выделено памяти больше, чем 4k в Windows STRING (WCHAR*) – 256 в tm6log сообщение <имя программы> 0 32 3
Сообщения / Posts 873 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Данила
Junior Member / Новичок
Участник № / Member № 5356
Алексей Шелепов
Forum Member / Участник форума
Участник № / Member № 6361
отправлено / posted
Подскажите, пожалуйста. Необходимо выводить на экран рецепт из 30 компонентов. Создана таблица из ГЭ "Текст". По примерам, для вывода длинных строк аргументы БД типа string привязаны к атрибуту "комментарий". При запросе по номеру строки таблицы во все 30 ГЭ "Текст" выводится значение последнего столбца. Что я делаю неправильно?
Сообщения / Posts 49 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Алексей Шелепов
Forum Member / Участник форума
Участник № / Member № 6361
отправлено / posted
Спасибо, но по ТЗ заказчика напротив каждого компонента рецепта создан ГЭ Текст в который вводиться вес этого компонента. Поэтому ГЭ "База данных" не подходит. Кроме того если убрать привязку аргументов к атрибуту "комментарий" то данные выводятся правильно но не более 4 символов. Как вывести из БД значение текстового поля нескольских столбцов, каждое в свой ГЭ "Текст" более 4 символов?
Сообщения / Posts 49 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Все аргументы STRING SQL-запроса должны быть привязаны к атрибутам КОММЕНТАРИЙ разных каналов.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Алексей Шелепов
Forum Member / Участник форума
Участник № / Member № 6361
отправлено / posted
Правильно ли я понимаю? Нужно создать 30 каналов БД и в каждой запрос на свой аргумент привязанный к "коментарию".
Сообщения / Posts 49 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Нет. SQL-запрос должен быть 1. STRING-аргументы могут быть привязаны к атрибутам КОММЕНТАРИЙ любых каналов.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Алексей Шелепов
Forum Member / Участник форума
Участник № / Member № 6361