lenasher
Forum Member / Участник форума
Участник № / Member № 6606
отправлено / posted
Здравствуйте, не добавляются записи в БД по запросу INSERT. Аргументы БД заполняются нормально, во входное значение 1 передается (номер запроса тоже 1), а таблица БД остается пустой. Короткий пример отослала. Спасибо.
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Необходимо провести диагностику: - ключ DEBUGON=70044010 В файле *.CNF и смотреть в профайлерном протоколе, - в трассировщике ODBC-драйвера.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
lenasher
Forum Member / Участник форума
Участник № / Member № 6606
отправлено / posted
Подскажите, в аргументы SQL запроса с типом СТРОКА добавляется не более 4 символов? Вернее, программа в аргументы OUT типа STRING помещает не более 4 символов. Как исправить?
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Согласно документации, аргумент с типом данных STRING, не привязанный к текстовому атрибуту канала, может принимать и передавать только 4 байта (символа). Исправляется, например, привязкой аргумента к атрибуту КОММЕНТАРИЙ любого канала.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
отправлено / posted
Уважаемая техподдержка, можете выслать пример записи в БД, чтения из БД и экспорт в файл, а также отображение архивных записей на МРВ
Сообщения / Posts 43 | Из / From: Россия
| IP / IP: IP адрес / IP address |
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
отправлено / posted
В разделе "Информация для всех" есть тема "Тестовые примеры".
Пробовал сделать проект по аналогии с видео примером "Запись данных из СПАД в БД Access". Данные не записывались и не отображались на мониторе. По работе с БД многого не пойму, например:
1.Какие способы записи в БД существуют в TM 6? 2.Архив СПАД это и есть встроенная БД SIAD/SQL6? 3.Каким образом туда пишутся данные? С каким то промежутком времени или только принудительно? 4. Как из файла аrchive.rep экспортировать данные в Excele или другие приложения?
Сообщения / Posts 43 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В разделе "Тестовые примеры" есть примеры "Вывод данных из БД на тренд", "Пример работы с рецептами из БД" и "Из БД в документ". Рекомендую изучить их.
1. ТМ6 в БД пишет с помощью "Шаблона связи с СУБД". Подробности в Справочной Системе - "Распределенные АСУ-Обмен с базами данных". Так же в разделе "Быстрый старт" подробно описана процедура связи с БД.
2. Да, архив СПАД это БД SIAD.
3. По умолчанию, данные в архив пишутся пакетами, но можно настроить на принудительную запись.
4. Извлеките данные из архива (пример "работа с рецептами из БД"), а затем их передайте в Excel (с помощью DDE-соединения или используя SQL-команду INSERT)
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
отправлено / posted
Как настроить запись данных в БД не по нажатию кнопки как в примерах, а постоянно?
Сообщения / Posts 43 | Из / From: Россия
| IP / IP: IP адрес / IP address |
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
отправлено / posted
Уважаемая техподдержка, не могли бы вы подсказать как в примере работы с рецептами из БД осуществляется скажем так "активация" SELECT и INSERT? Насколько я понял из примера, то для получения данных нажимается соответствующая кнопка в результате значение 1 записывается в ARG_006 экрана, но этот аргумент ни к чему не привязан, как тогда выполняется запрос на чтение\запись параметров? Пожалуйста, поясните знающие
Сообщения / Posts 43 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Вы правильно поняли - активация SELECT и INSERT через кнопку, которая посылает значение в аргумент экрана.
Аргумент привязан. Вы открыли шаблон экрана, а надо было открыть канал вызова шаблона экрана (ПКМ по каналу и выбрать "редактировать"). Все привязки необходимо делать в каналах.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by BUJH: Как настроить запись данных в БД не по нажатию кнопки как в примерах, а постоянно?
В любую БД постоянно записывать данные нельзя. Необходимо контролировать состояния "Запись" и "Записано". По этому рекомендуется использовать именно кнопку. Альтернатива - программа, которая будет самостоятельно отдавать команду на запись и проверять завершена ли запись.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
отправлено / posted
Добрый день! Изучил пример работы с БД "Обмен данными между SCADA TRACE MODE и СУБД по ODBC". Сделал проект по аналогии для БД Access.Все работает, все отлично. Теперь когда сделал пример, нужно перекинуть его на рабочую версию и записывать в БД значение типа float (реальный аналоговый параметр). Перенастроил аргументы экрана на тип данных REAL (и в Базе соответственно), но значения записать не удалось. Подскажите кто-нибудь как параметры с плавающей точкой записывать в БД? А так же: 1.Как одновременно со значением записывать его метку времени в БД? 2.При записи в БД у меня записывается значение в НОВУЮ строку, а можно ли просто перезаписывать старое значение новым? 3.Как убедиться (из trace mode) что запись и чтение значений в БД завершились успешно и ее переполнение (или заполнение до определенного кол-ва значений)?
Сообщения / Posts 43 | Из / From: Россия
| IP / IP: IP адрес / IP address |
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
отправлено / posted
техподдержка, не могли бы вы ответить на мои вопросы? Ребят, честно, не знаю как решить задачу что описал выше, помогите с решением
Сообщения / Posts 43 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. В качестве разделителя формата REAL в БД следует использовать точку. Ошибки ODBC-обмена следует контролировать по протоколу трассировщика ODBC-драйвера (см. Администратор ODBC-источников). 2. Для передачи метки времени в соответствующее поле БД надо задать аргумент с типом данных D&T и связать его с соответствующим атрибутом канала (например, с 45-м). 3. Для обновления данных в БД следует использовать запрос с оператором запроса UPDATE. 4. При успешном выполнении запроса ВХОДНОЕ ЗНАЧЕНИЕ канала CALL.SQL обнуляется. Если запрос не выполнен за время таймаута, каналу выставляется признак недостоверности (см. документацию). Степень заполнения БД может контролироваться, например, по значению какого-либо поля в БД, которое должно считываться и программно обрабатываться.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
BUJH
Forum Member / Участник форума
Участник № / Member № 6737
отправлено / posted
quote:Отправитель / Originally posted by AdAstra Technical Support: 1. В качестве разделителя формата REAL в БД следует использовать точку. Ошибки ODBC-обмена следует контролировать по протоколу трассировщика ODBC-драйвера (см. Администратор ODBC-источников).
ъ Все таки не могу добиться того чтобы значения типа REAL записывались в БД. Где именно мне использовать данный разделитель?
Сообщения / Posts 43 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
По полученной информации, пользователю удалось добиться записи значений REAL: "Разобрался с REAL."
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |