Страница: 1 |
Какое количнство записей имеешь? минимум 50000 максимум 80000. В общем добился результата 2 сек для 50000 использовал переменную типа Variant как массив и метод GetRows объекта RecordSet varDataRows = RS.GetRows(recCount), и затем TreeView заполняю: TV.Nodes.Add , , Trim$(CStr(varDataRows(1, i))), Trim$(CStr(varDataRows(1, i))), 2, 3 2 сек в принципе уже нормально, хотя аппетит приходит всегда не кстати Слушай, а зачем ты выводишь в TreeView? Не проще ли в ListView. Добавляешь VScroll. dim db as dao.database dim rst as dao.recordset set db=opendatabase(path and name) set rst =db.openrecordset(name table with query) rst.movelast if err<>3021 then rst.MoveFirst for z=0 to rst.recordcount-1 ListViewEv.ListItems.Add z + 1, "", VScroll1.Value + z + 1 next z end if Страница: 1 |
Вопрос: Массив и RecordSet
Добавлено: 20.11.03 19:18
Автор вопроса:
cresta
Как можно заставить RecordSet работаь без DataGrid так же быстро, как и с ним?
Поясню вопрос:
DataGrid, связанный с RecordSet, заполняется за 1,5 сек.
Пытаюсь заполнить массив значениями из RecordSet - время возрастает до 24 сек
(неприемлимая величина)
Выяснил, что львиная доля задержки приходится на RecordSet.MoveNext(22 сек
без считывания в массив, просто голый цикл от 0 до RS.RecordCount)
Может, кто-нибудь знает как заставить массив получить значения из RecordSet так же
быстро, как и DataGrid???
Заранее благодарен за помощь.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа: Emigrant
Вопросов: 7
Ответов: 22
Профиль | | #1
Добавлено: 20.11.03 21:21
Номер ответа: 2
Автор ответа: cresta
Вопросов: 117
Ответов: 1538
Профиль | | #2
Добавлено: 20.11.03 23:17
Номер ответа: 3
Автор ответа: Emigrant
Вопросов: 7
Ответов: 22
Профиль | | #3
Добавлено: 21.11.03 00:11
rst.Move (VScroll1.Value)
ListViewEv.ListItems(z + 1).ForeColor = rst!Color
ListViewEv.ListItems(z + 1).SubItems(1) = rst!Name
ListViewEv.ListItems(z + 1).SubItems(2) = rst!Adress
rst.movenext
Номер ответа: 4
Автор ответа: cresta
Вопросов: 117
Ответов: 1538
Профиль | | #4
Добавлено: 21.11.03 00:41
Да я использую и Tree и List, есть 50000 наименований, я их сортирую в 500 разных папок(это TreeView), по 100 в каждой(ListView) а по событию NodeClick уже раскрываю конкретную папку. Просто задача была распихать все пункты куда надо т.е. сформировать категории. А код посмотрю, может ещё быстрее получится.Спасибо