NestorIT
Forum Member / Участник форума
Участник № / Member № 4337
отправлено / posted
Наблюдаю принеприятную картину - в ТМ 6.07.7 перестала работать выборка столбца/строки из БД при помощи CALL.ChGroupReq.
Создаем проект. В проекте - шаблон связи с БД, скажем База_данных#1 с подключением к БД Access, источник ODBC - recept1 (из вашего примера про работу с БД). В этом шаблоне единственый запрос
code:
SELECT Nomer #ARG_000#, Parametr1 #ARG_001#, Parametr2 #ARG_002#, Parametr3 #ARG_003#, Parametr4 #ARG_004#, Parametr5 #ARG_005# FROM Table1
и аргументы соответствующих типов (INT, STRING, REAL, REAL, REAL, REAL). Далее, создаем шаблон экрана - Экран#1, на котором размещаем несколько ГЭ Текст с привязкой к аргументам экрана, скажем типа REAL. Создаем узел RTM_1 и из шаблонов экрана и связи с БД перетаскиванием получаем соответствующие каналы CALL. На экране еще размещаем кнопку, при нажатии на которую в аргумент экрана DB (UINT) будет посылаться 65535, а сам аргумент привязываем к атрибуту In канала База_данных#1. По количеству параметров шаблона связи с БД создаем каналы CALL.ChGroupReq с "Параметр=0" и десятком аргументов в каждом соотсветствующего типа (INT, STRING, REAL, REAL, REAL, REAL). К аргументам канала База_данных#1 привязываем атрибут R каналов CALL.ChGroupReq. Каналу, связанному с вызовом Экран#1, устанавливаем привязки аргументов к какому-либо из каналов CALL.ChGroupReq (тип REAL, раз уж шаблон экрана под REAL сделан был). Вообщем все как всегда. НО при запуске профайлера, после посылки значения 65535 в канал БД - все зависает.
Собственно как быть? Сохранился IDE TM6.07 - там такой проблемы нет. Можно ли где-нибудь скачать базовый МРВ 6.07, так как купленная коробка с 6.06.2 + upgrade до 6.07.7 проблемы не решает. Или есть иное, более разумное, чем откат на прежнюю версию решение?
Сообщения / Posts 35 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В релизе 6.07.7 введен более строгий контроль соответствия привязок и типов данных привязываемых аргументов. Сообщения в профайлере и в tm6_log.txt говорят о неверных привязках канала, вызывающего экран. Если Ваша собственная проверка не позволит Вам выявить ошибку, присылайте проект на адрес техподдержки.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
NestorIT
Forum Member / Участник форума
Участник № / Member № 4337
отправлено / posted
Я уже неделю бьюсь. Дошел до создания указанного выше минимума. Буду признателен, если ткнете носом в ошибку. Проект отправил на hotline3@adastra.ru
Кстати, всякий раз приходится искать на форуме адрес ТП. Нынче так и не нашел - отправил на тот, через который общался ранее
Сообщения / Posts 35 | Из / From: Россия
| IP / IP: IP адрес / IP address |
NestorIT
Forum Member / Участник форума
Участник № / Member № 4337
отправлено / posted
Спасибо, огромное! Привести число строк в таблице в соответствие с числом привязанных аргументов у канала вызова экрана не всегда представляется возможным, так как количество строк в выборке БД чаще всего не известно, а вот решение с копированием при помощи Call.Move (параметр=4) в другой ChGroupReq, и привязкой уже его аргументов - работает!
Правда с двумя и более "столбцами" разного типа, скажем REAL и INT - такой фокус не проходит. Ошибок нет, но значения аргументов ChGroupReq (как копируемых, так и тех куда копируются) меняются непредсказуемым образом. В лучшем случае становятся нулевыми