Отправка данных в mySQL

Помечено: 

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #2276
    Ajaks84
    Участник

    Добрый день,

    Не получается настроить отправку данных в mySQL.

    Я делал следующее:

    1. Создал БД test
    2. Создал таблицу
    — Удалить таблицу данных входных каналов, если она существует
    DROP TABLE IF EXISTS cnldata;
    — Создать таблицу данных входных каналов
    CREATE TABLE cnldata ( datetime DATETIME NOT NULL, cnlnum INT NOT NULL, val DOUBLE NOT NULL, stat SMALLINT UNSIGNED NOT NULL, PRIMARY KEY (datetime, cnlnum) ) ENGINE=InnoDB;
    CREATE INDEX idx_cnldata_cnlnum ON cnldata (cnlnum);

    3. Настроил server=localhost;port=3306;database=test;user id=root;password=123

    4. Во вкладку CurrentData вписал запрос:
    INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES (@dateTime, @cnlNum, @val, @stat)

    5. Нажимаю Manual Export — CurrentData — Export, получаю Command Sent Successfully. Но в БД значения не появляются.

    Что я сделал не правильно?

    #2279
    Mikhail
    Модератор

    Добрый день!
    Command Sent Successfully — значит команда ушла службе SCADA-Сервера, но не значит, что она успешно выполнилась.
    Модуль экспорта в БД имеет собственный лог. Посмотрите, какая ошибка в нём.

    #2280
    Ajaks84
    Участник

    Я нашел 2 лог файла, в первом:

    1. MySQL — localhost; state: export error; in queue cur/arc/ev: 81/0/0; exported cur/arc/ev: 471/0/0; skipped cur/arc/ev: 0/0/0

    Во втором:
    2016-06-15 12:03:22 Error export current data to DB MySQL — localhost: Duplicate entry ‘2016-06-15 12:03:22-271’ for key ‘PRIMARY’

    #2283
    Mikhail
    Модератор

    Получается, что для текущих данных команда INSERT вызывает дублирование данных по первичному ключу. Для ручного экспорта нужно либо поставить запрос со слиянием, как для архивных данных, либо сначала удалить из БД существующее значение.

    #2291
    Ajaks84
    Участник

    Михаил, большое спасибо за оперативные ответы.

    Сейчас у меня в другая проблема:

    2016-06-15 13:08:10 Unable to enqueue current data. The maximum size of the queue 100 is exceeded

    #2294
    Mikhail
    Модератор

    Такое может быть, если данные поступают быстрее, чем они закачиваются в MySQL.
    Какие у Вас характеристики по объёму и скорости получения данных?
    Простое увеличение размера буфера (которое сейчас является константой в коде программы) может не помочь, т.к. причина проблемы — разная пропускная способность на входе и на выходе.

    #2297
    Mikhail
    Модератор

    По какому протоколу работают Ваши устройства?

    #2401
    Max
    Участник

    Я ни где не нашел инструкцию как отправлять данные в mysql помогите разобраться я хочу отравлять входные данные в mysql потом оттуда вывести на web страницу.

    #2406
    Mikhail
    Модератор

    В дистрибутиве файл Doc\dbexport_ru.pdf

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Вы должны авторизироваться для ответа в этой теме.