Ошибка экспорта по ODBC таблицы параметров

Страницы: 1
RSS
Ошибка экспорта по ODBC таблицы параметров, При первом старте генерируется большое количество сообщений об ошибке экспорта по ODBC.
 
Версия 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 поле "Инструмент" сделано уникальным, то генерируется ошибка.
 
Цитата
Александр написал:
Duplicate entry '' for key 'table' SQLSTATE=23000 Код ошибки=1062"
Добрый день.

Ошибка говорит о том, что в таблице неверно установлен ключ уникальности.
Проверьте уникальный ключ должен быть на параметре "тип инструмента".

Если разобраться не удастся, то создайте в папке с программой Quik файл с именем quik_odbc.log
После перезапуска Quik, туда начнется записываться логи ODBC экспорта.
Воспроизведите проблему, после чего пришлите полученный лога нам на quiksupport@arqatech.com
 
на  quiksupport@arqatech.com я отослал скриншот диалога ODBC в нем указано, что параметр "Инструмент" должен быть уникальным ключом (помечен *). Если это не так, скажите, какой параметр должен быть ключевым. Параметра "тип инструмента" я не нашел. файл quik_odbc.log смогу сделать только завтра утром.
 
Цитата
Александр написал:
на   quiksupport@arqatech.com  я отослал скриншот диалога ODBC в нем указано, что параметр "Инструмент" должен быть уникальным ключом (помечен *). Если это не так, скажите, какой параметр должен быть ключевым. Параметра "тип инструмента" я не нашел. файл quik_odbc.log смогу сделать только завтра утром.
Добрый день.

Да, имелся ввиду "инструмент". Ждем лог quik_odbc.log.
 
Сегодня не было ошибок. Может как-то связано с задержками при записи в quik_odbc.log? Можно как-то сэмулировать смену даты? А то придется ждать до завтра.
 
Отправил quik_odbc.log с ошибками
 
В ответном письме вы сказали, что для mysql необходимо сделать триггер с проверкой дубликатов значений и указали ссылку, где ранее поднимался этот вопрос: http://forum-archive.quik.ru/forum/iwr/100348/100391/ однако данная ссылка нерабочая. Большая просьба дать пример кода триггера, который может решить эту задачу.
 
Цитата
Александр написал:
В ответном письме вы сказали, что для mysql необходимо сделать триггер с проверкой дубликатов значений и указали ссылку, где ранее поднимался этот вопрос:  http://forum-archive.quik.ru/forum/iwr/100348/100391/  однако данная ссылка нерабочая. Большая просьба дать пример кода триггера, который может решить эту задачу.
Добрый день.

К сожалению, старый форум в ближайшее время работать не будет.
Что касается триггера, то по ссылке были просто примеры, которыми делились пользователи и которые им помогли, но не конкретно к вашей задаче. Триггер Ваш нужно написать самостоятельно.
 
В версии 6.17.3.6 данной ошибки не было. Может это все же ваша ошибка, на написание триггера -- это рекомендуемый вами костыль. Он конечно поможет, но создаст большую нагрузку на процессор.
 
Цитата
Александр написал:
В версии 6.17.3.6 данной ошибки не было. Может это все же ваша ошибка, на написание триггера -- это рекомендуемый вами костыль. Он конечно поможет, но создаст большую нагрузку на процессор.
Добрый день.

Александр, такая ошибка "Duplicate entry '' for key 'table' SQLSTATE" была и на ранних версиях и проблема не на стороне QUIK, а в архитектуре сервера MySQL.
 
В предыдущих версиях такой ошибки точно не было. Иначе давно поднял бы этот вопрос. Но дело не в этом: нельзя в 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_che­ck values ();
   END IF;
 END; //

DELIMITER ;
 
Цитата
Александр написал:
В предыдущих версиях такой ошибки точно не было. Иначе давно поднял бы этот вопрос. Но дело не в этом: нельзя в 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_che­ ­ck values ();
   END IF;
 END; //

DELIMITER ;
Добрый день.

К сожалению, по написанию триггера не подскажем.
Цитата
В предыдущих версиях такой ошибки точно не было. Иначе давно поднял бы этот вопрос.
Опишите подробно, какие действия на новой версии выполняете, что возникает описанная проблема.
 
Настроен вывод по ODBC для многих таблиц, в том числе для таблицы параметров. Для всех таблиц в диалоге вывода по ODBC выставлены "галки" "Чистить таблицу перед выводом", "Формальные имена" и "Вывод после создания". Запускаю info.exe в начале дня или с ключом --clear в середине дня (если запустить в середине дня без ключа --clear, то ошибки не будет). Ввожу логин/пароль. Все. Пока таблица параметров полностью на заполнена генерируются ошибки.
 
Цитата
Александр написал:
Настроен вывод по ODBC для многих таблиц, в том числе для таблицы параметров. Для всех таблиц в диалоге вывода по ODBC выставлены "галки" "Чистить таблицу перед выводом", "Формальные имена" и "Вывод после создания". Запускаю info.exe в начале дня или с ключом --clear в середине дня (если запустить в середине дня без ключа --clear, то ошибки не будет). Ввожу логин/пароль. Все. Пока таблица параметров полностью на заполнена генерируются ошибки.
Добрый день.

Александр, пробовали воспроизвести описанную Вами ситуацию на версиях 7.0, 7.1.
Ошибку воспроизвести не удалось. Попробуйте обновиться до версии 7.1. Повторить ошибку, снять лог, а также сделать архив рабочего места QUIK (без ключей доступа и файла chm). Если есть возможность проверить на версии 6.17.3.6 , где при таких же действия ошибка не возникает, то проверьте и тоже пришлите результаты. Будем проверять.
 
Цитата
Egor Zaytsev написал:
К сожалению, старый форум в ближайшее время работать не будет.
Прошу дать полный и аргументированный ответ:
  1. Что значит "...в ближайшее время..."? т.е.  Вы хотите сказать, что контент старого форума будет вновь доступен??
  2. Если Вы - окончательно "распрощались" со старым форумом - могу ли я в таком случае - свободно выкладывать сохранённые материалы с него (топики и комментарии) для пользователей, с которыми В так обошлись?...

 
Цитата
тот самый написал:
Что значит "...в ближайшее время..."? т.е.  Вы хотите сказать, что контент старого форума будет вновь доступен??

Старый форум уже не работает.

Цитата
тот самый написал:
Если Вы - окончательно "распрощались" со старым форумом - могу ли я в таком случае - свободно выкладывать сохранённые материалы с него (топики и комментарии) для пользователей, с которыми В так обошлись?...

А раньше что мешало?
 
Цитата
Sergey Gorokhov написал:
Цитата
тот самый   написал:
Что значит "...в ближайшее время..."? т.е.  Вы хотите сказать, что контент старого форума будет вновь доступен??
Старый форум уже не работает.
Цитата
тот самый   написал:
Если Вы - окончательно "распрощались" со старым форумом - могу ли я в таком случае - свободно выкладывать сохранённые материалы с него (топики и комментарии) для пользователей, с которыми В так обошлись?...
А раньше что мешало?
т.е. если я реанимирую Ваш старый форум - Вы не станете возражать?
 
Цитата
тот самый написал:
т.е. если я реанимирую Ваш старый форум - Вы не станете возражать?

Вы для начала определитесь, "реанимирую" или "выкладывать сохранённые материалы"
Это разные вещи.
 
ок.
пусть всё останется на своих местах.
Страницы: 1
Читают тему
Наверх