powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSChart - как убыстрить процесс передачи и отображения данных
4 сообщений из 4, страница 1 из 1
MSChart - как убыстрить процесс передачи и отображения данных
    #32505118
Фотография Vadim Kutuzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
У меня такая ситуация: в VB6 делаю запрос через RecordSet, получаю данные 8000+строк по 7 значений (время + 6 данных), пишу это в массив данных, затем вывожу все это на MSChart в виде 2D Step графика (Pattern - None). Всё это занимает порядка 1.30-1.45 минуты!!! Очень долго... Есть варианты, как это убыстрить можно?
Сам запрос на сервере (MSDE) занимает в пределе 1 секунды. Думаю, что имено передача данных в массив и из массива в график - вот тут проблема. Может быть как-то разбить на подзапросы, и давать в несколько массивов? Какие вообще есть варианты?
...
Рейтинг: 0 / 0
MSChart - как убыстрить процесс передачи и отображения данных
    #32505184
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем массив нужен? Массив в цикле заполняешь, ну и заполняй сразу MSChart, а не массив. Я правда сам MSChart не работал, так предложение.

Или так попробуй(у себя на простеньком запросе попробовал - работает):

Код: plaintext
1.
2.
3.
4.
Option Explicit

Private Sub Command1_Click()
    Set MSChart1.DataSource = ado1.Recordset
End Sub
...
Рейтинг: 0 / 0
MSChart - как убыстрить процесс передачи и отображения данных
    #32505223
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если первый вариант не нравится, то можно вручную заполнить MSChart в цикле, не создавая массив.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit

Private Sub Command1_Click()
Dim i As Integer
    MSChart1.ColumnCount = ado1.Recordset.Fields.Count
    MSChart1.RowCount = ado1.Recordset.RecordCount
    Do While Not ado1.Recordset.EOF
        MSChart1.Row = ado1.Recordset.AbsolutePosition
        For i =  1  To MSChart1.ColumnCount
            MSChart1.Column = i
            MSChart1.Data = ado1.Recordset(i -  1 )
        Next i
        ado1.Recordset.MoveNext
        DoEvents
    Loop
    MSChart1.Visible = True
End Sub
...
Рейтинг: 0 / 0
MSChart - как убыстрить процесс передачи и отображения данных
    #32505440
Фотография Vadim Kutuzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, лоханулся...
Было так: получаю РекордСет и заполняю MSChart. Массив нужен для процедуры увеличения/уменьшения (ZoomIn/ZoomOut) (сейчас подумал, что может всё-таки смогу от него отказаться, так как именно он берёт много времени, вывод данных на график - поменьше...).
Мне скорее интересно вот что: как ускорить заполнение массива вообще? Есть какие-нибудь варианты разбить запрос на два и из них писать в массив или если из двух запросов в 2 массива? То есть как бы параллелбная работа... Кто-нибудь это делал?
Я конечно сам попробую, но вдруг кто уже сталкивался с этим...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSChart - как убыстрить процесс передачи и отображения данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]