Сергей (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Пожелания по доработкам (настройки таблиц, фильтры, Trans2Quik.dll)
 
Добрый день!


Цитата
Цитата
1. Более гибкая настройка таблицы параметров. Сейчас нельзя добавить  целый класс и забыть про настройки навсегда. Физически добавляются сами  инструменты, в него входящие. Поэтому при появлении новых серий  необходимо заново настраивать таблицы – удалять все опционы из  «заголовков строк» и добавлять весь класс повторно. Нужен фильтр по  базовым активам базовых активов-фьючерсов (т.е. RTS, Si, SBRF и т.д.),  количеству страйков, срокам (в днях) и количеству ближайших серий  (например, 1, 2, 5…), шагом страйка. Вы же сделали что-то похожее в  таблице «Доска опционов», но только надо с выбором базового актива  фьючерса опциона. И, конечно, это должно быть реализовано универсально –  чтобы в одной таблице можно было выбирать как опционы, фьючерсы, акции,  так и все остальные классы.
Вы можете отключить добавление инструментов в таблицу при их появлении в системе. Пункт меню Система/Настройки/Основные/Программа/Получение данных/ При получении нового инструмента: Добавлять его во все таблицы.

Во-первых, предлагаемый функционал работает некорректно - после добавления новых инструментов экспорт таблиц, в которые были внесены автоматические изменения, останавливается и требуется ручной перезапуск экспорта.

Во-вторых, этот функционал у вас работает так, что добавляются все новые инструменты, независимо от использованных при первичном отборе фильтров.

Например. При отборе был использован контекстный фильтр «Si». Выбраны опционы. Но при появлении новых инструментов добавятся новые опционы в т.ч. и по другим БА, а не только Si*.

И это неудивительно, т.к. список инструментов в настройках таблиц – фиксированный, и каким образом его набрал пользователь, система вряд ли запоминает. А добавление новых инструментов, судя по всему, осуществляется по условно-интеллектуальному принципу, какие классы были найдены в списке, по ним и будут добавлены новые инструменты.

Кроме того, если необходимо внести изменения, то приходится все начинать сначала - почистить список инструментов, а потом добавлять заново по своим правилам.

В-третьих, необходим нормальный функционал настройки фильтров именно в настройках таблиц, правил или еще чего-то, что позволило бы еще и поддерживать эти параметры (т.е. корректировать настроенное ранее, а не настраивать заново).

На мой взгляд, востребованными были бы следующие параметры:

Группа базовых активов (базовый актив базового актива). С возможностью выбора нескольких активов. Например, RTS + Si.

Базовый актив. С возможностью выбора нескольких активов. Например, RIU2 + RIZ2 + SRU2.

Количество доступных серий. Например, 1, 2, 3 и т.д.

В качестве альтернативы – количество серий можно заменить на период отображаемых сроков экспирации. Например, 14…45 дней.

Цитата
Цитата
5. Необходима возможность остановки экспорта и отключения от БД через метод в библиотеке TRANS2QUIK.dll. Это требуется для проведения технологических операций в БД, в неторговое время, в автоматическом режиме, без закрытия Quik’а.
Не совсем понятно зачем это делать через Trans2QUIK.dll ? О каком экспорте и базе данных идет речь.
В случае использования экспорта по ODBC QUIK постоянно держит активным подключение к базе данных (в которую осуществляется экспорт). И никакие технологические операции (бэкап/рестор) в самой БД уже невозможны без физического отключения пользователя (QUIK).

А такие операции желательно проводить регулярно. У меня, например, это необходимо хотя бы раз в неделю. И в случае, когда и QUIK, и робот, без вмешательства пользователя работают неделями, то есть желание и технологические операции поставить «на автомат». Но т.к. QUIK штатно не поддерживает автологин при запуске, а экспорт не включается/выключается через API, то раз в неделю приходится подключаться к серверу, закрывать QUIK, запускать скрипт для бэкап/рестор/архивирования и после этого запускать QUIK заново.

Кроме того, экспорт может остановиться или не запуститься при восстановлении подключения, и для полного контроля этого процесса вполне логичным было бы иметь инструмент управления подключением к БД и включением/выключением экспорта через dll.

Цитата
Цитата
6. В таблицах «Клиентский портфель», «Ограничения по клиентским счетам», «Таблица лимитов по бумагам», «Позиции по клиентским счетам» неактивен чекбокс «Вывод после создания» и кнопка «Начать вывод данных». Но если остановить экспорт и закрыть таблицу, то чекбокс снимается.

При активном экспорте или не настроенном экспорте данный чекбокс отключен.

Пожелание снято. Возможно, проблема была решена в последующих версиях.

Прошу также сообщить о результатах рассмотрения зарегистрированных предложений (№№ 2, 3 , 4).

Спасибо!

Экспорт скрытых строк по ODBC
 
Добрый день!
Обнаружил, что проблема устранена в версии 9.5.0.42.
Теперь все работает корректно.
Спасибо!
Экспорт скрытых строк по ODBC
 

Добрый день!

Разбираясь в очередной раз со скоростью экспорта по ODBC, обнаружил неприятный сюрприз.

В QUIK уже года 2 существует интересный инструмент – «Фильтр» для полей таблиц. Он позволяет отображать в таблицах не все инструменты, а только те, которые удовлетворяют условиям.

Я его использую для сокращения количества рутины при настройках фьючерсов и опционов. Но оказалось, что все не совсем так, как хотелось.

Да, фильтр ограничивает список инструментов, по которым осуществляется экспорт. Но он это делает только при первичной вставке.

При последующих изменениях в данных – QUIK пытается проапдейтить все инструменты, не обращая внимания на фильтры. Но, т.к. при первичной вставке скрытые инструменты в таблицу-получатель не добавлялись, то все последующие апдейты – бессмысленны. И самое неприятное – что пользователь об этом никак не может догадаться, пока не изучит quik_odbc.log.

Пример (показываю на фьючерсах, чтобы данных было поменьше) в версии 9.3.3.3:

1.       Настраиваю таблицу параметров (в списке «Доступные инструменты» вводу в контекстный поиск RI + переношу в «Заголовки строк» всю группу «FORTS: фьючерсы»).

2.       Получаю список из 8-и инструментов за 2 года.

3.       Настраиваю фильтр на поле «До погашения» - менее 120.

4.       У меня остаются только 2 инструмента – RIH2 и RIM2.

5.       Перезахожу в QUIK, создав файл quik_odbc.log.

6.       Сразу после чистки таблицы добавляется записи с инсертом отфильтрованных инструментов (RIH2 и RIM2).

7.       Через минуту осуществляется апдейт, но уже по всем 8-и инструментам.

Файл с картинками и лог загружены по ссылке https://drive.google.com/file/d/1utfcONnZm_XkIV_nOOLIKsbQdHleriJd/view?usp=sharing.

Сначала думал, что какую-то хорошую задумку случайно испортили, но, провернув этот трюк на версиях последних 2-х лет (8.2.1.13 от 18.12.2019, 8.5.2.11 от 30.04.2020, 8.7.1.3 от 02.07.2020, 8.9.0.107 от 05.10.2020, 8.11.0.66 от 11.12.2020, 8.13.0.106 от 22.03.2021, 8.13.1.16 от 16.04.2021, 9.1.3.11 от 18.08.2021, 9.2.3.15 от 11.10.2021, 9.3.1.11 от 12.11.2021, 9.3.3.1 от 08.12.2021) понял, что так было с самого начала, просто, видимо, я не обращал на это внимания, т.к. скорость устраивала.

Сейчас у меня экспортируется ~4000 опционов, и потери в скорости стали ощутимыми. Экспорт начинает отставать от реальных данных и при интервале обновления «30 секунд» в течение дня накапливается отставание 1-2 часа. Проблему, конечно, решает, увеличение частоты его до 50 или 60 секунд, но меня это не устраивает.

Свою проблему я решил временным ограничением – выбираю в настройках только нужные серии (а не все 30000 опционов, как раньше). Дополнительно оптимизировал работу сервера БД и своего приложения в части работы с потоками, доведя частоту апдейта без каких-либо отставаний до 3 сек. Мне в целом хватает и 5 сек., но настраивать отдельные серии все равно не хочется.

Прошу исправить ошибку. И здесь есть два пути:

а) если так и было задумано (фильтр не должен ограничивать экспорт), то тогда необходимо и первичный INSERT пустить и по всем скрытым строкам. В таком случае будет, что апдейтить в дальнейшем. И пользователь с удовольствием увидит результаты своих горе-настроек в виде «распухших» таблиц с экспортируемыми без учета фильтров данными. И обязательно задокументировать это в HELP’е. Сейчас о влиянии фильтров на экспорт ни слова нет (или я плохо искал).

б) если это баг, то надо исправлять логику апдейта – не надо ходить по этим строкам, перегружать терминал и снижать тем самым скорость экспорта.

                                         

Я, конечно, голосую за вариант B.

Пожелания по доработкам (настройки таблиц, фильтры, Trans2Quik.dll)
 

Добрый день!

Прошу рассмотреть предложения по доработкам.

1. Более гибкая настройка таблицы параметров. Сейчас нельзя добавить целый класс и забыть про настройки навсегда. Физически добавляются сами инструменты, в него входящие. Поэтому при появлении новых серий необходимо заново настраивать таблицы – удалять все опционы из «заголовков строк» и добавлять весь класс повторно. Нужен фильтр по базовым активам базовых активов-фьючерсов (т.е. RTS, Si, SBRF и т.д.), количеству страйков, срокам (в днях) и количеству ближайших серий (например, 1, 2, 5…), шагом страйка. Вы же сделали что-то похожее в таблице «Доска опционов», но только надо с выбором базового актива фьючерса опциона. И, конечно, это должно быть реализовано универсально – чтобы в одной таблице можно было выбирать как опционы, фьючерсы, акции, так и все остальные классы.

2. Фильтр инструментов (блок «Доступные инструменты») в настройке таблицы «Текущая таблица параметров» всегда работает как контекстный (%маска%), невозможно отфильтровать все инструменты начинающиеся, например, на BR (фьючерсы и опционы на Brent, в таком случае фильтруются и все опционы других базовых активов серии …BR2 (июнь 2022).

3. Необходим экспорт по ODBC из окон «Доска опционов». Уже много лет об этом все говорят.

4. В фильтрах необходимо условие фильтра типа «между». Оно нужно в случаях, когда одновременно требуется поставить условия со связкой по «или»: «не задано» + пара условий («больше 15» и «меньше 90»). В текущей реализации это невозможно сделать, манипулируя условиями только в одном поле – приходится выкручивать, добавляя условия на другие поля.

5. Необходима возможность остановки экспорта и отключения от БД через метод в библиотеке TRANS2QUIK.dll. Это требуется для проведения технологических операций в БД, в неторговое время, в автоматическом режиме, без закрытия Quik’а.

6. В таблицах «Клиентский портфель», «Ограничения по клиентским счетам», «Таблица лимитов по бумагам», «Позиции по клиентским счетам» неактивен чекбокс «Вывод после создания» и кнопка «Начать вывод данных». Но если остановить экспорт и закрыть таблицу, то чекбокс снимается.

Ошибка проверки сертификата после обновления на версию 9.2.3.15
 
Добрый день!

Возможно, кому-то пригодится.

После обновления QUIK на версию 9.2.3.15 рабочее место при запуске выдает ошибку:

Ошибка проверки файлов программы:
Ошибка проверки файла ...\info.exe.
Код ошибки: 0x800b010a
Текст ошибки: Не удается построить цепочку сертификатов для доверенного корневого центра.

ОС - Microsoft Windows Server 2012 R2 Standart.
Брокер - БКС.

После аналогичного обновления QUIK на ноутбуке под Windows 10 подобной ошибки не выводится. QUIK работает корректно.

На форуме ничего подобного не нашел.
На ftp://ftp.quik.ru/public/updates/9.2 нашел сертификат ARQA_ca_certs.pfx.
Установить не удалось, потребовался пароль (странно, что на ftp его не выложили).
Погуглив, нашел статью https://broker.vtb.ru/login/quik/distr/, в которой есть ссылка на инструкцию, где пароль указан.

Установил, QUIK заработал.
Проблемы с фильтром в окне "Таблица текущих торгов", Не работает некоторые условия в фильтре поля "Дата исполнения"
 
Добрый день!
На всякий случай. Аналогичная проблема с этим полем - и в условном форматировании.
Проблемы с фильтром в окне "Таблица текущих торгов", Не работает некоторые условия в фильтре поля "Дата исполнения"
 

Добрый день!

После обновления версии с 8.13.1.16 до 9.1.3.11 возникли проблемы с фильтрами.

В таблице текущих торгов перестали работать математические условия сравнения в фильтре по полю «Дата исполнения».

Например, «больше либо равно» = «сегодня» .

При этом:

1.       Условие «не задано» отрабатывается корректно;

2.       Подобные условия по полю «Погашение» (дата) и «Дата торгов» в этом же окне отрабатываются корректно.

3.       Подобные условия с полями типа «Дата» в окнах заявок и сделок отрабатывают корректно.

4.       Пересоздание таблицы торгов и перенастройка фильтров проблему не исправляет.

5.       Проверено на разных машинах, по Windows 10 и под Windows Server 2012 R2. Брокер - БКС.

P.S. В целом, я переключился на поле «Погашение» (различия – некритичны), но проблему все же надо исправить.

P.P.S. Инструмент фильтрации – очень удобный. Чтобы не выбирать опционы, многие годы настраиваю условия для кодов инструментов, например «начинается с» = «Si», «RI». Добавляю условие по срокам. И в таком случае, не надо руками выбирать определенные серии, а достаточно выбрать все опционы (все 18000+), а потом исключаю лишние фильтрами таблицы. На скорость экспорта не влияет. Но есть пожелания:

1. Добавьте по возможности условие типа «между». Оно необходимо в случаях, когда одновременно надо поставить условия со связкой по «или»: «не задано» + пара условий («больше 15» и «меньше 90»). В текущей реализации это невозможно сделать, манипулируя условиями только в одном поле. Именно поэтому использую связку условий дата + дни до погашения.

2. Поменяйте принцип реализации набора инструментов в окно. Сейчас нельзя добавить целый класс и забыть про настройки навсегда. Физически добавляются сами инструменты, в него входящие. Поэтому при появлении новой серии необходимо заново настраивать таблицы – удалять все опционы из «заголовков строк» и добавлять весь класс повторно.

Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
 
Цитата
Юрий Балашов написал:
Цитата
Sergey Gorokhov написал:

Дополним,
Если проблема действительно в FB то обновление терминала никак не поможет.
ответ следует искать на форумах где обсуждается FB.
Еще можно попробовать изменить тип данных в самой базе.
Да, проблема действительно в FB, Квик передает данные, но усеченные, не все 19 цифр. Поэтому и был вопрос, на какой базе данных тестировали передачу данных по ODBC?
На какой тип данных изменить, в самой базе у меня стоит DOUBLE PRECISION?
Это же теперь целочисленный тип, а не вещественный, как было раньше (и всех сильно забавляло).
Правда, хелп QUIK'а (info.chm от 20.07.20) версии 8.8.4 (ftp.quik.ru//public/updates/8.8/quik_8.8.4_upd.zip от 21.08.20) все еще упорно говорит нам о том, что там decimal, да еще и с 15 знаками в целой части.

Таблица заявок

Таблица заявок
Параметр Формат
Номер DECIMAL(15,0)

Таблица сделок
Параметр Формат
Номер DECIMAL(15,0)
Заявка DECIMAL(15,0)

в BIGINT корректно пишет.
https://firebirdsql.org/refdocs/langrefupd15-bigint.html
Проверено в 3-м диалекте.
Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки, Сбой передачи данных по ODBC при переходе на 19-тизначный номер заявки
 
Цитата
Юрий Балашов написал:
Цитата
Sergey Gorokhov написал:

Дополним,
Если проблема действительно в FB то обновление терминала никак не поможет.
ответ следует искать на форумах где обсуждается FB.
Еще можно попробовать изменить тип данных в самой базе.
Да, проблема действительно в FB, Квик передает данные, но усеченные, не все 19 цифр. Поэтому и был вопрос, на какой базе данных тестировали передачу данных по ODBC?
На какой тип данных изменить, в самой базе у меня стоит DOUBLE PRECISION?

Это же теперь целочисленный тип, а не вещественный, как было раньше (и всех сильно забавляло).
Правда, хелп QUIK'а (info.chm от 20.07.20) версии 8.8.4 (ftp.quik.ru//public/updates/8.8/quik_8.8.4_upd.zip от 21.08.20) все еще упорно говорит нам о том, что там decimal, да еще и с 15 знаками в целой части.
Таблица заявок
ПараметрФормат
НомерDECIMAL(15,0)
Таблица   сделок
ПараметрФормат
НомерDECIMAL(15,0)
ЗаявкаDECIMAL(15,0)
в BIGINT корректно пишет.
https://firebirdsql.org/refdocs/langrefupd15-bigint.html
Проверено в 3-м диалекте.
Некорректный ответ Trans2Quik.dll при включенном терминале (TRANS2QUIK_DLL_NOT_CONNECTED)
 
Добрый день!

Наконец-то удалось решить проблему с подключением Trans2Quik.dll 1.2 на Windows 10 x64 (TRANS2QUIK_CONNECT возвращал "Connection failed at step 1 with error 5").

Решение навеял пост http://o-s-a.net/forum/threads/385.
В итоге, после некоторых комбинаций с разными правами, коннект нормально установился при запуске Quik в режиме совместимости с Windows 8 (в свойствах файла info.exe, вкладка "Совместимость").

Господа разработчики, вам решать, правильно это или нет, но, на мой взгляд, это некорректная реализация dll.

P.S. чистая установка (по совету Дмитрия) не помогла.
Некорректный ответ Trans2Quik.dll при включенном терминале (TRANS2QUIK_DLL_NOT_CONNECTED)
 
Добрый день, Сергей!

С версией 1.2 я разобрался еще 5 лет назад))
И модуль работы с API с тех пор не трогал.

Цитата
Sergey Gorokhov написал:
Для начала, проверьте банальные вещи:
А именно, включен ли импорт транзакций в терминале QUIK (меню Сервисы - Экспорт/Импорт данных - Внешние транзакции)?
Корректно ли указан путь к папке с терминалом QUIK в параметрах подключения? (особенно следует обратить внимание что в х64 битной системе две папки "Program Files")

Это тоже все проверил в первую очередь.

Цитата
Sergey Gorokhov написал:
Заранее отмечаем что ни у нас ни у кого-либо еще не возникало проблем с работой версии 1.2. именно из-за х64 битной ОС.

Ну это уже хоть что-то.

Спасибо. Буду копать вместе с C++.
Некорректный ответ Trans2Quik.dll при включенном терминале (TRANS2QUIK_DLL_NOT_CONNECTED)
 
Добрый день, Станислав!

Приложение корректно работает на Windows Server 2012.
И так же корректно работало на Windows XP, Windows 7, Windows 8 и Windows 10 32-й разрядности.
Как только была установлена 64-разрядная Windows 10, коннект r Quik пропал.

Я почему-то ожидал что вы знаете, какие подводные камни могут "выплыть" при переходе с x86 на x64.
Но никак не ожидал предложения "сравнить свою версию на Delphi  с нашими C++ и C#". И найти отличия...

P.S. Неправильно написал в первом сообщении.
Ошибка в TRANS2QUIK_CONNECT. На выходе - TRANS2QUIK_FAILED. pnExtendedErrorCode возвращает код 5.
Как следствие - следующая ошибка в TRANS2QUIK_IS_DLL_CONNECTED. На выходе - TRANS2QUIK_DLL_NOT_CONNECTED.

С уважением,
Сергей.
Некорректный ответ Trans2Quik.dll при включенном терминале (TRANS2QUIK_DLL_NOT_CONNECTED)
 
Добрый день!
На сервере, на 64-разрядной версии Windows 2012 R2, версия 1.2 Trans2Quik работает исправно.
На локальной машине, после перехода с 32-й на 64-ю пропал коннект.
Функция TRANS2QUIK_CONNECT теперь при включенном терминале возвращает TRANS2QUIK_DLL_NOT_CONNECTED, как при запуске в режиме отладки, так и при запуске exe-файла.
При подключении dll версии 1.3 приложение на Delphi выдает критическую ошибку – «Ошибка при запуске приложения…».
В чем может быть проблема?

ОС – Windows 10 Pro x64
QUIK – 7.14.1.7, брокер – БКС. Обработка внешних транзакций включена.
Trans2Quik.dll – 1.2.
Подмена TransId c версии сервера 5.4.2
 
Добрый день, господа разработчики!

Уточните, когда ждать решения.
Убил кучу времени на поиск этой ошибки, пока не наткнулся на этот пост.
В итоге - что, move_orders юзать теперь нельзя? Делать по-колхозному, через снятие старой и отправку новой?

С уважением,
Сергей.
Заявка на вывод денег через API, Не получается создать заявку на вывод денег через API
 
Спасибо, Сергей!

Все получилось.
Заявка на вывод денег через API, Не получается создать заявку на вывод денег через API
 
Добрый день, Сергей!

Спасибо.
Никогда бы не подумал, что так можно.

Тем не менее.
Отправляю транзакцию, аналогично взятой из кармана (странно, что на русском):

Код торгового счета=L01-00000F00; Примечание=00000; ACTION=Вывод денег; TRANS_ID=123456; Инструмент=RURFORTS; Режим=TRANOUT; Тип вывода=Безналично; Сумма=11; Снять весь остаток=Нет; Срочный вывод=Нет;

Выдает ответ "не указан режим".

Все ли верно делаю?

С уважением,
Сергей.
Заявка на вывод денег через API, Не получается создать заявку на вывод денег через API
 
Добрый день!

Уважаемые разработчики, проясните, можно ли создать транзакцию на вывод денег через API?

Пробовал и так:

CLIENT_CODE=ХХХХХ; ACCOUNT=ХХХ-ХХХХХХХХ; ACTION=NEW_ORDER; TRANS_ID=123456; CLASSCODE=TRANOUT; SECCODE=RURFORTS; QUANTITY=10000

и так:

CLIENT_CODE=ХХХХХ; ACCOUNT=ХХХ-ХХХХХХХХ; ACTION=NEW_ORDER; TRANS_ID=123456; CLASSCODE=TRANOUT; SECCODE=RURFORTS; PRICE=10000

Вместо ХХХХХ и ХХХ-ХХХХХХХХ - конечно, реальные код клиента и счет.

Терминал выдает ошибку, некорректные параметры. Но что именно неправильно, неясно. В хелпе ничего про такую возможность не сказано.

Руками (из терминала) созданная транзакция тоже не помогла: в таблице транзакций она отображена не полностью - ни в одном из столбцов нет значения суммы. И какой ACTION должен быть - тоже загадка.


С уважением,
Сергей.
Медленный экспорт в Firebird через ODBC
 
Добрый день, Олег!

Проблема решена. По крайней мере, устранены сильные тормоза и скорость работы доведена хотя бы до скорости Access'а.

Как выяснилось, мой виртуальный хостер предоставляет SSD-диски только для системного раздела. А доп.раздел - SATA.
Сам FB, БД и каталог для временных файлов перенесены на SSD-диск. Теперь экспорт тех же данных занимает не 120 сек, а только 3-4 сек. Что в целом уже почти устраивает.

+ немного подкрутил настройки firebird.conf.
Осталось еще памяти добавить.

Помогла статья http://www.ibase.ru/devinfo/optimize.htm.

С уважением,
Сергей.
Медленный экспорт в Firebird через ODBC
 
Добрый день, Олег!

По уменьшению интервала обновления - понятно. Увеличил. Спасибо.

Но остались вопросы:

1. Почему экспорт тех же данных в Access (тоже через тормозной ODBC) производится быстрее в 50-60 раз (1500 строк: 2 минуты в FB против 2 сек в Access)? Неужели он шустрее FB?

2. Как посоветуете повысить производительность FB? Может, проблема в драйвере? Какие есть альтернативы?


С уважением,
Сергей.
Некорректная отработка экспорта через ODBC
 
Добрый день, Сергей!

Вы пишите:
Уникальность записи контролируется не QUIK, а самой базой данных через первичные ключи или индексы уникальности.
Соответственно если они не настроены, то очередная запись добавляется, а не обновляется.

А в этом сообщении https://forum.quik.ru/messages/forum11/message4956/topic546/#message4956 я написал, что при наличии уникальных индексов выдается ошибка, и обновление не производится.

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


С уважением,
Сергей.
Медленный экспорт в Firebird через ODBC
 
Прошу прощения.
* Олег.
Медленный экспорт в Firebird через ODBC
 
Добрый день, Сергей!

Логи отправил.
Спасибо.

С уважением,
Сергей.
Некорректная отработка экспорта через ODBC
 
Сергей,

я не знаю синтаксис ODBC.
А нем нет ничего подобного команде "update or ins ert in to..."?

С уважением,
Сергей.
Некорректная отработка экспорта через ODBC
 
Добрый день, Сергей!

Судя по описанной Вами логике, отсутствие галки должно работать при наличии уникальных индексов.

Но, если настроить индексы, например, в таблице параметров (уникальный индекс по полю, в которое вносятся значения поля "Инструмент *"), то при импорте через ODBC (когда значения уже вставлены, и необходимо сделать апдейт):

В MS Access выводится сообщение:

[Microsoft][Драйвер ODBC Microsoft Access] Изменения не были успешно внесены из-за повторяющихся значений в индексе, ключевых полях или связях.  Измените данные в поле или полях, содержащих повторяющиеся значения, удалите индекс или переопределите его, чтобы разрешить повторяющиеся значения, и повторите попытку.
SQLSTATE=23000
Код ошибки=-1605

А при экспорте в FireBird:

[ODBC Firebird Driver][Firebird]violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "QUIKPARAMS"
Problematic key value is ("TICKER" = 'Si34000BR5')
SQLSTATE=23000
Код ошибки=-803



С уважением,
Сергей.
Некорректная отработка экспорта через ODBC
 
Добрый день!

В разделе "Использование ODBC для экспорта информации" справки QUIK в описании параметров написано:
  • «Чистить таблицу перед выводом» - если флажок установлен, то перед началом экспорта, при смене сессии, сервера или пользователя старые данные из таблицы будут удалены; если флажок снят, то новые данные будут замещать старые по мере поступления.
Но, в действительности, режим "обновления", в принципе, не работает. Если снять галку, то строки добавляются повторно. Причем не только измененные, а все.

Проверял на разных таблицах. Везде все одинаково. Индексов уникальности в таблицах нет.

Приходится использовать режим полного чистки перед записью. В таком случае размер базы растет очень быстро.

Прошу пояснить, в чем смысл такого режима обновления. Если это все-таки ошибка (причем - ей уже много лет), то сообщите, когда она будет исправлена.

С уважением,
Сергей.
Медленный экспорт в Firebird через ODBC
 
Добрый день!

Экспорт из QUIK в FireBird через ODBC осуществляется с задержками.
К вечеру достигает опоздания 1-2 часа (!!!).

Экспорт осуществляется из 9 таблиц, самая большие - таблица параметров в 2 версиях:
1. Колонки: Код бумаги Бумага Бумага сокр. Баз.актив Код класса Класс Тип опциона Лот Точность Шаг цены Страйк Дата исп. Валюта Марж.
2. Колонки:  Код бумаги Спрос Предл. Теор. цена Цена послед. Волатильность БГОНП БГОП ГО покупателя ГО продавца Статус
Обычно по 300-700 строк. Опционы.
Экспорт одной таблицы в 700 строк осуществляется в течение 1-2 минут.

Проверялось с таблицам FB как с индексами, так и без них.

QUIK 6.17.1.17. Проблема была также и в предыдущих версиях (6.16.1.15, 6.16.0.42, 6.15.2.9, 6.15.1.17).
FireBird 2.5.3.26778.
FireBird ODBC Driver 2.0.3.154 (http://www.firebirdsql.org/en/odbc-driver), также проверял на 2.0.2.153, как на Windows xp, так и на Windows Server 2008 R2 Standard.

При этом, в той же сессии одновременно с FB экспорт осуществляется и в базу MS Access. Так же через ODBC. Мгновенно (700 строк за 1-2 сек), объемы данных - точно такие же.

Нашел на форуме подобную проблему в ветке http://forum-archive.quik.ru/forum/iwr/77235/
Но там проблема была решена обновлением версии QUIK'а.

Здесь, думаю, проблема в чем-то другом. Прошу помочь.

С уважением,
Сергей.
Страницы: 1
Наверх