<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Некорректная отработка экспорта через ODBC]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Некорректная отработка экспорта через ODBC форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 04 Apr 2026 14:28:47 +0300</pubDate>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message5081/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_9d8lwMsY" href="/user/1013/" bx-tooltip-user-id="1013">Сергей</a> пишет: <br />и обновление не производится.<br /><br />=============<br />Делаем в базе таблицу<br />
====code====
<pre>CRE ATE&nbsp;&nbsp; TABLE &#91;dbo&#93;.&#91;Table_1&#93;(
&nbsp;&nbsp;&nbsp;&#91;instrument&#93; &#91;varchar&#93;(255) NOT NULL,
&nbsp;&nbsp;&nbsp;&#91;last&#93; &#91;decimal&#93;(19, 6) NULL,
 CONSTRAINT &#91;PK_Table_1&#93; PRIMARY KEY CLUSTERED 
(
&nbsp;&nbsp;&nbsp;&#91;instrument&#93; ASC
)WITH (PAD_INDEX&nbsp;&nbsp;= OFF, STATISTICS_NORECOMPUTE&nbsp;&nbsp;= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS&nbsp;&nbsp;= ON, ALLOW_PAGE_LOCKS&nbsp;&nbsp;= ON) ON &#91;PRIMARY&#93;
) ON &#91;PRIMARY&#93;

GO</pre>
=============
<br /><br />Далее в терминале строим ТТП по какому-нибудь инструменту и добавляем одно единственное поле &quot;Цена последней сделки&quot;<br /><br />настраиваем экспорт, запускаем, данные едут все хорошо.<br />Останавливаем экспорт а потом снова запускаем.<br />Появляется сообщение о нарушении первичного ключа (так и должно быть)<br />Смотрим в базу, данные продолжают обновляться. Ровно как и должно быть.<br />То есть у нас описанная проблема не воспроизводится.<br /><br />Опишите аналогично как Вы воспроизводите? <br />
			<i>27.05.2015 23:56:43, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message5081/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message5081/topic546/</guid>
			<pubDate>Wed, 27 May 2015 23:56:43 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message5079/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			Добрый день, Сергей!<br /><br />Вы пишите:<br /><I>Уникальность записи контролируется не QUIK, а самой базой данных через <B>первичные ключи или индексы уникальности</B>. <br />Соответственно если они не настроены, то очередная <B>запись добавляется</B>, а не обновляется. <br /></I><br />А в этом сообщении <noindex><a href="https://forum.quik.ru/messages/forum11/message4956/topic546/#message4956" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum11/message4956/topic546/#message4956</a></noindex> я написал, что при наличии уникальных индексов выдается ошибка, и обновление не производится.<br /><br />Поясните, в каких тогда случаях работает обновление, а не добавление, и что настроил некорректно.<br />Еще раз повторюсь, что удалять все данные, а потом добавлять новые - на мой взгляд, нерационально, да и БД быстрее растет.<br /><br /><br />С уважением,<br />Сергей. <br />
			<i>27.05.2015 23:29:36, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message5079/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message5079/topic546/</guid>
			<pubDate>Wed, 27 May 2015 23:29:36 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message5047/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_CBXh6Obn" href="/user/1013/" bx-tooltip-user-id="1013">Сергей</a> пишет: <br />Сергей,<br /><br />я не знаю синтаксис ODBC.<br />А нем нет ничего подобного команде "update or ins ert in to..."?<br /><br />С уважением,<br />Сергей.<br /><br />=============<br />Этот вопрос зависит от базы данных в которую идет экспорт.<br />То есть затрагивается момент потери совместимости.<br />К тому же текущая реализация ничем не хуже <br />
			<i>27.05.2015 17:21:56, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message5047/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message5047/topic546/</guid>
			<pubDate>Wed, 27 May 2015 17:21:56 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message5041/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_yKHYQle9" href="/user/1013/" bx-tooltip-user-id="1013">Сергей</a> пишет: <br />Судя по описанной Вами логике, отсутствие галки должно работать при наличии уникальных индексов.<br /><br />=============<br />Не вижу противоречий уже сказанному ранее.<br />Сначала происходит вставка, если она не удачна то обновление.<br />Все работает. <br />
			<i>27.05.2015 16:51:09, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message5041/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message5041/topic546/</guid>
			<pubDate>Wed, 27 May 2015 16:51:09 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message4958/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			Сергей,<br /><br />я не знаю синтаксис ODBC.<br />А нем нет ничего подобного команде "update or ins ert in to..."?<br /><br />С уважением,<br />Сергей. <br />
			<i>25.05.2015 23:51:58, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message4958/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message4958/topic546/</guid>
			<pubDate>Mon, 25 May 2015 23:51:58 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message4956/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			Добрый день, Сергей!<br /><br />Судя по описанной Вами логике, отсутствие галки должно работать при наличии уникальных индексов.<br /><br />Но, если настроить индексы, например, в таблице параметров (уникальный индекс по полю, в которое вносятся значения поля "Инструмент *"), то при импорте через ODBC (когда значения уже вставлены, и необходимо сделать апдейт):<br /><br />В MS Access выводится сообщение:<br /><br />&#91;Microsoft&#93;&#91;Драйвер ODBC Microsoft Access&#93; Изменения не были успешно внесены из-за повторяющихся значений в индексе, ключевых полях или связях. &nbsp;Измените данные в поле или полях, содержащих повторяющиеся значения, удалите индекс или переопределите его, чтобы разрешить повторяющиеся значения, и повторите попытку.<br />SQLSTATE=23000<br />Код ошибки=-1605<br /><br />А при экспорте в FireBird:<br /><br />&#91;ODBC Firebird Driver&#93;&#91;Firebird&#93;violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "QUIKPARAMS"<br />Problematic key value is ("TICKER" = 'Si34000BR5')<br />SQLSTATE=23000<br />Код ошибки=-803<br /><br /><br /><br />С уважением,<br />Сергей. <br />
			<i>25.05.2015 23:47:35, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message4956/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message4956/topic546/</guid>
			<pubDate>Mon, 25 May 2015 23:47:35 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message4949/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			"Здравствуйте,<br />Описанное поведение не является ошибочным.<br />Сначала происходит вставка, если она неудачна из за нарушения уникальности, то обновление. <br />Это общепринятый подход, обусловленный тем что предварительно проверять наличие данных в базе более трудозатратно.<br />Уникальность записи контролируется не QUIK, а самой базой данных через первичные ключи или индексы уникальности.<br />Соответственно если они не настроены, то очередная запись добавляется, а не обновляется.<br /><br />таким образом, если галка "Чистить таблицу перед выводом" включена, происходит очистка таблицы, и в ней вставка срабатывает успешно, в результате данные добавляются<br />если галка "Чистить таблицу перед выводом" отключена, вставка не срабатывает, в результате данные обновляются.<br />То есть Вам нужно ее включить <br />
			<i>25.05.2015 20:55:11, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message4949/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message4949/topic546/</guid>
			<pubDate>Mon, 25 May 2015 20:55:11 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
		<item>
			<title>Некорректная отработка экспорта через ODBC</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum11/message4902/topic546/">Некорректная отработка экспорта через ODBC</a></b> в форуме <a href="http://forum.quik.ru/forum11/">Экспорт в системы тех.анализа</a>. <br />
			Добрый день!<br /><br />В разделе "Использование ODBC для экспорта информации" справки QUIK в описании параметров написано:<br /><ul><li>«Чистить таблицу перед выводом» - если флажок установлен, то перед началом экспорта, при смене сессии, сервера или пользователя старые данные из таблицы будут удалены; если флажок снят, то новые данные будут замещать старые по мере поступления.<br /></ul>Но, в действительности, режим "обновления", в принципе, не работает. Если снять галку, то строки добавляются повторно. Причем не только измененные, а все.<br /><br />Проверял на разных таблицах. Везде все одинаково. Индексов уникальности в таблицах нет.<br /><br />Приходится использовать режим полного чистки перед записью. В таком случае размер базы растет очень быстро.<br /><br />Прошу пояснить, в чем смысл такого режима обновления. Если это все-таки ошибка (причем - ей уже много лет), то сообщите, когда она будет исправлена.<br /><br />С уважением,<br />Сергей. <br />
			<i>24.05.2015 23:28:16, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum11/message4902/topic546/</link>
			<guid>http://forum.quik.ru/messages/forum11/message4902/topic546/</guid>
			<pubDate>Sun, 24 May 2015 23:28:16 +0300</pubDate>
			<category>Экспорт в системы тех.анализа</category>
		</item>
	</channel>
</rss>
