Катя
Junior Member / Новичок
Участник № / Member № 5756
отправлено / posted
Здравствуйте! У меня есть база данных SQL в которую средствами трейсмод пишутся раз в 2 минуты значения переменной + текущее время. Из этой базы я хочу построить тренд. Я создаю 2 канала ChGroupReq, на 720 аргументов каждый (один для переменной, другой для метки времени) чтобы вывести данные за последние сутки. Делаю как в примере запрос в базу данных, посылаю во входное значение число 65535. После этого в канале ChGroupReq, вместо заданных мной 720 аргуметов оказывается больше аргументов, например 850 - что соответствует количеству всех строчек БД на настоящий момент. Т.е. в канал читаются все строчки БД, а не заданное мной количество. Так и должно быть или я что-то сделала не правильно? Спасибо
отправлено / posted
При выполнении SQL-запроса в каналах Call.ChGroupReq автоматически создаются аргументы, количество которых соответствуют числу строк, возвращенных оператором SELECT.
Пример несколько устарел (в ближайшее время мы его обновим). В Вашем случае проще сразу из канала вызова SQL-запроса передавать считанные значения в канал Call.TVC (смотрите параграф "Формирование кривых в CALL.TVC" в разделе справочной системы "Выполнение SQL-запросов в реальном времени").
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Катя
Junior Member / Новичок
Участник № / Member № 5756
отправлено / posted
Я сделала как написано в справочной системе. Но получилось что-то не то. У меня в канале TVC на местах метки времени почему-то оказывается вот эта дата: 01.01.1970 4:00:55.000. Этой даты в моей БД нету. Значение переменной которую я считываю из БД для таких меток времени какое-то есть, похоже взятое из БД. Где-то в середине аргументов канала TVC оказываются метки времени, взятые из БД, например 05.09.2012 16:54:00.000. Но значение переменной для такой метки времени - 0, хотя в БД с этой меткой времени лежит не 0, а какое-то число. С чем это может быть связано? Спасибо
Сообщения / Posts 28 | Из / From: россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Нужно посмотреть проект, чтобы ответить. Вышлите файл проекта вместе с файлом базы данных на hotline3@adastra.ru.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Катя
Junior Member / Новичок
Участник № / Member № 5756
Катя
Junior Member / Новичок
Участник № / Member № 5756
отправлено / posted
и еще один вопрос - можно ли данные хранящиеся в БД при помощи trace mode читать из БД и экспортировать в excel?
Сообщения / Posts 28 | Из / From: россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В принципе задача решаемая. С Excel есть возможность связаться через DDE и ODBC.
Однако нам кажется такое решение громоздким и нерациональным. Не понятно, зачем требуется использовать Trace Mode в качестве шлюза между базой данных и Excel.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Катя
Junior Member / Новичок
Участник № / Member № 5756
отправлено / posted
Спасибо, получила ответ на почту. Но у меня есть база данных, я бы хотела вывести значения из нее в какой-то документ который можно посмотреть, сохранить и распечатать. Раз с Excel'ем это сложно, в Trace Mode существует "Документ". А в такой документ я могу как-то вывести данные из моей БД?
Сообщения / Posts 28 | Из / From: россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Данные из канала Call.TVC Можно вывести в html-документ в табличной форме (через механизм SubNum) либо в виде тренда. В таком случае МРВ должен поддерживать функцию документирования.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Катя
Junior Member / Новичок
Участник № / Member № 5756
отправлено / posted
Здравствуйте! В конце-концов я построила график по данным из БД. Но у меня появилось несколько вопросов, ответьте на них пожалуйста. На экране трендов мной нарисована кнопка "Показать", а также указывются сутки за которые надо показать график. По нажатию на кнопку делается запрос в БД с выборкой по времени и данные появляются в канале TVC. Но на тренде они отображаются только после нажатия какой-нибудь кнопки типа "на час назад", "на день назад". А как сделать так, чтобы по обновлению канала TVC график сразу отображался?
И еще вопрос - я делаю запрос в БД с выборкой данных за сутки. Если например за первые сутки у меня в БД будет 200 строчек, а за вторые только 50. Тогда при запросе за вторые сутки в канал TVC запишутся 50 строчек относящиеся к запрошенным суткам (ARG_002 - ARG_052), а в аргументах ARG_053 - ARG_0200 останутся данные от первого запроса?
Пока я вижу на своем тренде следующее: делаю запрос за (13 сентября 12 00 - 14 сентября 12 00) - вижу его. Делаю следующий запрос за (12 сентября 12 00 - 13 сентября 12 00) - вижу его на тренде, но предыдущий график (за 13-14) сентября никуда не пропадает. Аргументя канала TVC ARG_000 и ARG_001, отвечающие за временнной диапазон отображения тренда, привязаны к 2-м каналам TIME, где хранится начало и конец запрашиваемого из БД временного интервала. Поэтому я не очень понимаю из каких данных строится график на тренде. Ведь БД должна была положить в TVC данные за 12-13 сент, откуда же график за 13-14? Спасибо
Сообщения / Posts 28 | Из / From: россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Чтобы данные на тренде в архивном режиме обновились необходимо изменить отображаемый временной интервал. Один из вариантов автоматизировать обновление графиков - задать у тренда в свойстве "Ось времени" "Тип привязки" "Input" , а в качестве левой и правой границы использовать два первых аргумента канала Call.TVC.
2. Если канал Call.TVC сконфигурирован на одну кривую, то после каждого выполнения соответствующего SQL-запроса будет автоматически создано нужное число аргументов.
Если в канал Call.TVC сконфигурирован на несколько кривых, то аргументы нужно создавать вручную и их количество будет неизменно в процессе работы проекта.
Катя
Junior Member / Новичок
Участник № / Member № 5756
отправлено / posted
Здравствуйте! Скажите пожалуйста, а возможно ли создать несколько каналов TVC, в каждый записывать данные по одной переменной из БД, но потом все эти каналы вывести на одном ГЭ Тренд одновременно? Т.е. несколько каналов TVC привязать к разным кривым одного тренда? Я пробовала - у меня ничего на тренде не отображается, возможно и не должно? Спасибо
Сообщения / Posts 28 | Из / From: россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В общем случае должно отображаться. Для конкретного анализа нужно иметь проект и БД.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |