Постоянный поток данных в Excel из базы

Программирование на Visual Basic for Applications
Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Постоянный поток данных в Excel из базы

Сообщение Estilla » 16.07.2007 (Пн) 10:39

можно ли организовать сабж из sql и как?
у меня на данный момент сделано методом
создания в листе Excel объекта QueryTable, содержащего результаты запроса по источнику данных. Но это неудобно тем, что нужно очень часто(каждую секунду) опрашивать базу таймером.

Если это нельзя сделать на VBA можно ли такое сотворить на vb.net в связке с sql?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.07.2007 (Пн) 13:12

Подобный опрос базы -- весьма корявое решение, которое надо пересмотреть.
QueryTable, однако же, умеет обновляться каждую секунуд сам.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 16.07.2007 (Пн) 13:18

GSerg писал(а):Подобный опрос базы -- весьма корявое решение, которое надо пересмотреть.
QueryTable, однако же, умеет обновляться каждую секунуд сам.


"подобный" - это какой? о чем я спрашиваю или QueryTable?

"умеет обновляться каждую секунуд сам" - в смысле без OnTime?
Так когда я ставил .RefreshPeriod в свойствах QueryTable равный меньше 1мин, то excel кричал.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.07.2007 (Пн) 13:34

Подобный -- это столь частый опрос базы. Любым способом.
Да, точно, меньше минуты нельзя.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 16.07.2007 (Пн) 13:46

GSerg писал(а):Подобный -- это столь частый опрос базы. Любым способом.


да это я понимаю. это у меня временно. Потом на sql просто перейду. А пока приходится извращаться.
В принципе выборка из базы sql средствами vba занимает сотые доли секунды в моем случае. Меня просто сам факт существования таймера бесит.
Последний раз редактировалось Estilla 16.07.2007 (Пн) 13:48, всего редактировалось 1 раз.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.07.2007 (Пн) 13:48

А какая может быть необходимость опрашивать БД каждую секунду?
Я с таким ни разу не сталкивался.
Lasciate ogni speranza, voi ch'entrate.

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 16.07.2007 (Пн) 13:50

alibek писал(а):А какая может быть необходимость опрашивать БД каждую секунду?
Я с таким ни разу не сталкивался.

биржевые сделки.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.07.2007 (Пн) 13:57

Каждую секунду?
Что изменится, если информация будет обновляться не каждую секунду, а хотя бы раз в 15 секунд?
Lasciate ogni speranza, voi ch'entrate.

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 16.07.2007 (Пн) 14:07

alibek писал(а):Каждую секунду?
Что изменится, если информация будет обновляться не каждую секунду, а хотя бы раз в 15 секунд?


На ликвидных инструментах сделки совершаются по несколько штук в секунду.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.07.2007 (Пн) 14:22

И что, пользователь несколько раз в секунду совершает какие-то биржевые операции?

Кроме того, если уж имеется такая динамичная ситуация, то решать ее надо другими способами. Например, чтобы все операции проходили через сервер приложений, который дополнительно будет рассылать по сети (броадкастом или мультикастом) анонсы. А на клиентах информацию обновлять по факту получения анонса.
Lasciate ogni speranza, voi ch'entrate.

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 16.07.2007 (Пн) 14:31

alibek писал(а):И что, пользователь несколько раз в секунду совершает какие-то биржевые операции?


да нет. просто ты никогда не знаешь в какую секунду ты совершишь сделку, поэтому требуется иметь перед глазами свежие данные. Ладно что-нить придумаю. Я просто думал есть способ прямым потоком гнать данные в Эксель из базы как по DDE. На нет и суда нет.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.07.2007 (Пн) 15:44

Только вот зачем в Excel - не правильней ли будет в нормальный Grid?

Просто Excel сам по себе инструмент довольно тяжелый и тормозной.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 16.07.2007 (Пн) 15:47

Andrey Fedorov писал(а):Только вот зачем в Excel - не правильней ли будет в нормальный Grid?

Просто Excel сам по себе инструмент довольно тяжелый и тормозной.


это вы про DataGrid?
А он может принимать данные без таймера?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.07.2007 (Пн) 16:17

Estilla писал(а):это вы про DataGrid?


В принципе любой Grid. Правда с родными от VB я не работаю в виду их корявости...

Estilla писал(а):А он может принимать данные без таймера?


Хочешь или нет но запрос тебе придется делать самому - по таймеру. Да и иначе все одно толком невозможно. В нормальных системах так ведь и делается. А желающим можно предоставить возможность менять частоту обновления, скажем от секунды до минуты - в зависимости от потребности и скорости их сети...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 16.07.2007 (Пн) 16:41

ясно. всем спасибо.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 116

    TopList