Создал таблицу системных сообщений, настроил экспорт по ODBC в mysql, не экспортируются критические ошибки. Письмо со скриншотами отправил на quiksupport@arqatech.com.
Для решения вопроса с ошибкой экспорта по ODBC не придумал ничего лучше как рестартовать экспорт заново при обнаружении ошибки. Возникает вопрос как можно сторонней программой вытащить список ошибок?
Настроен вывод по ODBC для многих таблиц, в том числе для таблицы параметров. Для всех таблиц в диалоге вывода по ODBC выставлены "галки" "Чистить таблицу перед выводом", "Формальные имена" и "Вывод после создания". Запускаю info.exe в начале дня или с ключом --clear в середине дня (если запустить в середине дня без ключа --clear, то ошибки не будет). Ввожу логин/пароль. Все. Пока таблица параметров полностью на заполнена генерируются ошибки.
В предыдущих версиях такой ошибки точно не было. Иначе давно поднял бы этот вопрос. Но дело не в этом: нельзя в mysql написать триггер с отменой insert в этой же таблице! Можно только сделать костыль с генерацией ошибки, которая не прекращает экспорт по ODBC. Если вы знаете как правильно написать такой триггер, то большая просьба поделиться кодом. Мой вариант: DELIMITER //
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table_instrum FOR EACH ROW BEGIN IF (SEL ECT COUNT(*) FR OM my_table_instrum WHERE my_field_name = NEW.my_field_name) > 0 THEN ins ert in to you_cannot_insert_into_this_table_because_of_the_trigger_check values (); END IF; END; //
В версии 6.17.3.6 данной ошибки не было. Может это все же ваша ошибка, на написание триггера -- это рекомендуемый вами костыль. Он конечно поможет, но создаст большую нагрузку на процессор.
В ответном письме вы сказали, что для mysql необходимо сделать триггер с проверкой дубликатов значений и указали ссылку, где ранее поднимался этот вопрос: http://forum-archive.quik.ru/forum/iwr/100348/100391/ однако данная ссылка нерабочая. Большая просьба дать пример кода триггера, который может решить эту задачу.
Сегодня не было ошибок. Может как-то связано с задержками при записи в quik_odbc.log? Можно как-то сэмулировать смену даты? А то придется ждать до завтра.
на quiksupport@arqatech.com я отослал скриншот диалога ODBC в нем указано, что параметр "Инструмент" должен быть уникальным ключом (помечен *). Если это не так, скажите, какой параметр должен быть ключевым. Параметра "тип инструмента" я не нашел. файл quik_odbc.log смогу сделать только завтра утром.
Версия Quik 7.0.4.10. При первом старте quik генерируется более 500 ошибок вида: "[MySQL][ODBC 3.51 Driver][mysqld-5.1.35-community]Duplicate entry '' for key 'table' SQLSTATE=23000 Код ошибки=1062". Это происходит сразу после очитки таблицы параметров и последующем неполном ее заполнении. По всей видимости вы прочищаете таблицу, заполняете ее пустыми строками и как только там появляются нормальные строки вы начинаете экспорт экспортирую пустые строки. Т.к. в таблице mysql поле "Инструмент" сделано уникальным, то генерируется ошибка.