SergeyZ86
Junior Member / Новичок
Участник № / Member № 5575
отправлено / posted
Вопрос по видео уроку "Обмен данными между SCADA TRACE MODE и СУБД по ODBC". Для чтения значений из БД в канал CALL.SQLQuery.In необходимо записать 0xFFFF. Этот процесс описан в разделе "выполнение SQL-запросов в реальном времени" и здесь вопросов не возникает. Что касается записи в БД, на видео уроке по нажатию кнопки "Выполнить вставку строк" производится запись 2 в какой-то атрибут канала CALL.SQLQuery. Хотелось бы знать в какой, и почему записывается именно 2. Можно ли скачать данный демонстрационный проект? И еще, обязательно ли при записи в БД включать в запрос Insert поле RegionID ведь поля PrimaryKey в БД(по крайней мере в Access2007) заполняются автоматически?
Сообщения / Posts 9 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. "Хотелось бы знать в какой, и почему записывается именно 2."
Значение передается в атрибут "Входное значение" канала "База_данных#2:2". Передается двойка, чтобы записать в базу данных две строки (описание двух регионов по видеоролику). Мы можем выслать пример Вам на почту. Укажите адрес.
2. "И еще, обязательно ли при записи в БД включать в запрос Insert поле RegionID ведь поля PrimaryKey в БД(по крайней мере в Access2007) заполняются автоматически?"
Для Trace Mode это не имеет значения. Наша SCADA отправит в драйвер ODBC тот запрос, который забит в редакторе. А вот для базы данных это существенно. Если, например, столбец является обязательным для заполнения, и он не заполняется автоматически, то для успешного выполнения SQL-запроса запись столбца необходима.
Сообщения / Posts 17321 | Из / From: Россия
| IP / IP: IP адрес / IP address |
SergeyZ86
Junior Member / Новичок
Участник № / Member № 5575
отправлено / posted
Спасибо за ответ! Моя почта: xxx@yyy.ru Еще один вопрос. Почему-то не работает запрос на групповую выборку, написанный через мастер запросов. Пишу тот же запрос вручную - все работает. С чем это может быть связано? Заранее благодарю.
[ 28.11.2012, 09:50: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 9 | Из / From: Россия
| IP / IP: IP адрес / IP address |
2. Вероятней всего, есть какое-то различие в запросах.
В тех случаях, когда SQL-запрос не выполняется нужно включать трассировку ODBC и по файлу лога смотреть, что происходит.
Сообщения / Posts 17321 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Gvenihvivar
Junior Member / Новичок
Участник № / Member № 5513
отправлено / posted
Вышлите, пожалуйста, и мне пример проекта к этому видео на почту: xxxxxx@yyyyyyy Видео сегодня не доступно, его совсем убрали или вернут?
[ 20.06.2013, 14:41: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 7 | Из / From: Украина
| IP / IP: IP адрес / IP address |
Gvenihvivar
Junior Member / Новичок
Участник № / Member № 5513
отправлено / posted
Был разработан проект на основе примера. Когда запись велась в базу данных по нажатию кнопки, записывались все аргументы значащиеся в канале Call. Как только запись в БД автоматизровали с помощью программы, записываться стал только значение первого аргумента со всех каналов Call. Как с этим бороться? И еще: было настроено запись миллисекунд из атрибута 88 канала Time. Сам атрибут пишется, но при 4 записях за секунду значения всех миллисекунд одинаков. Такое впечатление, что ТМ просто тиражирует запись в зависимость от длины цикла пересчета. Можно определить заранее сколько времени нужно системе на выполнения записи?
Сообщения / Posts 7 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Кнопка с экрана передает в CALL.SQL только заданное значение. Программа всегда передает в свой аргумент какое-то значение. В программе необходимо обеспечить отсутствие сброса на входе CALL.SQL до тех пор, пока запрос не будет исполнен.
2. Значение мс в атрибуте 88 изменяется с циклом пересчета канала. 4 записи в секунду может оказаться слишком частым и для цикла пересчета и для ODBC-драйвера.
Сообщения / Posts 17321 | Из / From: Россия
| IP / IP: IP адрес / IP address |
SergeyZ86
Junior Member / Новичок
Участник № / Member № 5575
отправлено / posted
Здравствуйте. В моем проекте программно осуществляется запись определенного параметра с меткой времени в БД Access. Запись собственно начинается по нажатию кнопки, при этом в аргумент Arg000 канала Call.TVC через канал Time передается метка времени начала записи, и заканчивается по нажатию др. кнопки, соответственно метка времени посылается в аргумент Arg001. Частота записи значений в БД так же задается программно. После записи мне необходимо вывести значения параметра на архивный тренд во временном диапазоне, заданным аргументами Arg000, Arg001 канала Call.TVC. Но в атрибут 142 канала Call.TVC значения не пишутся. Если отвязать каналы Time от Arg000, Arg001 то в канал Call.TVC записываются все данные из БД. Проверял через окно Просмотр Компонентов, метки времени, записываемые в Arg000, Arg001 строго соответствуют первой и последней метке времени, записываемой в БД. Подскажите пожалуйста, в чем может быть причина отсутствия значений в канале Call.TVC...
Сообщения / Posts 9 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Речь, видимо, идет о формировании в канале TVC кривых, считанных из БД. Временной диапазон выборки для SQL-запроса не должен задаваться аргументами канала TVC, в который записываются результаты выборки. Arg000 и Arg001 канала TVC должны индицировать временной диапазон, не задаваемый для выборки, а получаемый в процессе считывания из БД. Собственно временной диапазон выборки должен задаваться в запрос SQL.SELECT от каналов TIME_beg и TIME_end, или непосредственно от соответствующих аргументов запроса SQL.SELECT, в которых фиксируются соответствующие временные метки.
Сообщения / Posts 17321 | Из / From: Россия
| IP / IP: IP адрес / IP address |
SergeyZ86
Junior Member / Новичок
Участник № / Member № 5575
SergeyZ86
Junior Member / Новичок
Участник № / Member № 5575
отправлено / posted
А у вас есть примеры построения подобных SQL-запросов с конвертированием меток времени из строкового формата Trace Mode 6 в формат Access 2007??? И еще, скажите пожалуйста, где можно прочитать, как пользоваться трассировщиком ODBC. В справочной системе к сожалению нет никакой информации...
Сообщения / Posts 9 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Формат времени, передаваемого из Trace Mode 6, соответствует региональным настройкам ОС. БД также должна соответствовать этим настройкам.
quote:Отправитель / Originally posted by AdAstra Technical Support: 1. Формат времени, передаваемого из Trace Mode 6, соответствует региональным настройкам ОС. БД также должна соответствовать этим настройкам.
Неа. Не так. БД допустим MS SQL, переведет в свой формат времени любое время. Т.е Можно писать нашь русский формат времени(день/месяц/год/час/минута/секунда), в БД MS SQL он все равно будет (год/месяц/день/час/минута/секунда) американским.
Сообщения / Posts 112 | Из / From: Россия
| IP / IP: IP адрес / IP address |