В разделе 6 руководства описан функционал экспорта инструментов по ODBC. Очень бы хотелось иметь аналог по DDE. Хочется искать плиты в стаканах :)
На мой взгляд DDE гораздо лучше ODBC, странно что его обделили вниманием.
1. Он быстрее, так как осуществляется через shared mem 2. Он позволяет не мучиться с генерацией сигналов об обновлении данных. (В случае через ODBC, к примеру, это означает или использовать триггеры или читать журнал транзакий, что медленнее на несколько порядков)
foobar написал: Очень бы хотелось иметь аналог по DDE.
По секрету, можно сделать свой ODBC драйвер, в качестве примера годится (опенсорцный) драйвер от mysql. Там "всего" около 70 апишных функций надо реализовать, не считая, конечно, собственно логики сервера, ака что куда и как рассовывать. Для DDE нужно окно, поэтому сомнительно, что без открытых стаканов сделают, из главного окна квика выводить все и сразу геморрою не оберешься.
Как я понял, идея выводить стаканы по DDE без открытия самих стаканов. По факту данные по DDE выводит какое-то окно, так что на практике получится либо просто невидимый стакан, либо одно (невидимое) окно на весь квик, занятое только DDE-экспортом всего и вся.
Именно: All DDE transactions are conducted by passing certain defined DDE messages between the client and server windows.
Цитата
foobar написал: Консольные программы тоже могут получить или отправлять DDE-сообщения.
Отправлять сообщения могут, никто не мешает. Чтобы сообщения получать, надо создать окно и дергать GetMessage или PeekMessage, причем после первого же вызова одной из этих функций поток станет гуишным (можно проверить, вызвав IsGUIThread). Работать с DDE из консольной программы можно через либу ddeml, которая как раз и создает кучку скрытых окон под ковром.
В смысле для работы ODBC не требуется окна и очереди сообщений. В квике можно стаканы по ODBC выводить, не открывая окон, о чем изначально и речь была, почему по ODBC так можно, а по DDE нельзя. Потому что для DDE окно все равно придется создавать, будь то нынешний стакан или какой-то его невидимый обрезок.
Anton написал: В смысле для работы ODBC не требуется окна и очереди сообщений
Это, вроде как, очевидно
Цитата
Anton написал: В квике можно стаканы по ODBC выводить, не открывая окон, о чем изначально и речь была,
Вот как? Научи? Мне не нужно, просто я вижу пункты меню там же где и dde, поэтому считаю что и вывод возможен там же - а это исключительно из открытых таблиц.
Отправлять сообщения могут, никто не мешает. Чтобы сообщения получать, надо создать окно и дергать GetMessage или PeekMessage, причем после первого же вызова одной из этих функций поток станет гуишным (можно проверить, вызвав IsGUIThread). Работать с DDE из консольной программы можно через либу ddeml, которая как раз и создает кучку скрытых окон под ковром.
Ну, всё может быть. Я писал на Java и не думал особо что происходит. В любом случае, я не вижу каких либо проблем для терминала. Там можно найти/сделать того кто будет отвечать и посылать сообщения.
Вот как? Научи? Мне не нужно, просто я вижу пункты меню там же где и dde, поэтому считаю что и вывод возможен там же - а это исключительно из открытых таблиц.
Сервисы - Импорт/Экспорт - Экспорт инструментов по ODBC
Imersio Arrigo написал: Если не ошибаюсь, очередь сообщений тут не причем. Во всяком случае у меня работало без нее.
С ddeml могло и без нее работать, там внутри делается примерно таким образом (внимание на while в последнем блоке, который и есть "локальный" цикл сообщений)
foobar написал: Уважаемая поддержка QUIK, прокомментируйте, пожалуйста, целесообразность разработки предлагаемом в первом сообщении пожелании
Добрый день. Мы рассмотрим данный вопрос в рамках зарегистрированного пожелание. Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.