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