Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » Работа с БД в 6.07.7

   
Автор / Author Тема / Topic: Работа с БД в 6.07.7
NestorIT
Forum Member / Участник форума
Участник № / Member № 4337


Icon 11 отправлено / posted      Профиль для / Profile for NestorIT           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Наблюдаю принеприятную картину - в ТМ 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 в канал БД - все зависает.

В <prj>.txt появляются записи типа
quote:

...
(11:54:43) WRN_RTM:wrong entry(g)
(11:54:44) WRN_RTM:wrong entry(g)
(11:54:44) WRN_RTM:wrong entry(g)
...

В tm6_log.txt
quote:

...
11:54:43 0016 00000032[7] Экран#1:1
11:54:44 0016 00000032[7] Экран#1:1
11:54:44 0016 00000032[7] Экран#1:1
...

Собственно как быть? Сохранился IDE TM6.07 - там такой проблемы нет. Можно ли где-нибудь скачать базовый МРВ 6.07, так как купленная коробка с 6.06.2 + upgrade до 6.07.7 проблемы не решает. Или есть иное, более разумное, чем откат на прежнюю версию решение?
Сообщения / Posts 35 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В релизе 6.07.7 введен более строгий контроль соответствия привязок и типов данных привязываемых аргументов.
Сообщения в профайлере и в tm6_log.txt говорят о неверных привязках канала, вызывающего экран.
Если Ваша собственная проверка не позволит Вам выявить ошибку, присылайте проект на адрес техподдержки.

Сообщения / Posts 17322 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
NestorIT
Forum Member / Участник форума
Участник № / Member № 4337


Icon 1 отправлено / posted      Профиль для / Profile for NestorIT           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Я уже неделю бьюсь. Дошел до создания указанного выше минимума. Буду признателен, если ткнете носом в ошибку. Проект отправил на hotline3@adastra.ru

Кстати, всякий раз приходится искать на форуме адрес ТП. Нынче так и не нашел - отправил на тот, через который общался ранее

Сообщения / Posts 35 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
NestorIT
Forum Member / Участник форума
Участник № / Member № 4337


Icon 14 отправлено / posted      Профиль для / Profile for NestorIT           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо, огромное!
Привести число строк в таблице в соответствие с числом привязанных аргументов у канала вызова экрана не всегда представляется возможным, так как количество строк в выборке БД чаще всего не известно, а вот решение с копированием при помощи Call.Move (параметр=4) в другой ChGroupReq, и привязкой уже его аргументов - работает!

Правда с двумя и более "столбцами" разного типа, скажем REAL и INT - такой фокус не проходит. Ошибок нет, но значения аргументов ChGroupReq (как копируемых, так и тех куда копируются) меняются непредсказуемым образом. В лучшем случае становятся нулевыми [Неодобрение / Frown]

Да, Call.Move использовал отдельный для каждого из столбцов.

Сообщения / Posts 35 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2