|
|
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
Делаю отображение таблицы ДБФ в таблицу на форме (форма сама в 1С) Страничный обмен. Таблица упорядочена по индексу (например DocNo - номер документа) Сами страницы из таблицы считываются практически мгновенно (по индексу) Но такой код Код: plaintext 1. RowCount нужен для определения положения ползунка в вертикальной прокрутке таблицы на форме. Грубо говоря это номер записи если бы таблица физически была упорядочена по индексу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 14:12 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
1. Отказаться от прокрутки 2. Считать относительное смещение 3. создать курсор c нужной сортировкой (select ... order by ...) и использовать recno() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 14:17 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
1. Отказаться от прокрутки - к сожалению не очень неудобно пользователям 2. Считать относительное смещение - сейчас так и делаю, но так как номера документов меняются - накапливаются ошибки смещения 3. создать курсор c нужной сортировкой (select ... order by ...) и использовать recno() - для страничного обмена не годится, так как вместо 11 записей считывает всю таблицу, на порядки медленнней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 14:26 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
Так попробуй, хотя не намного быстрее будет. Код: plaintext kiruha2. Считать относительное смещение - сейчас так и делаю, но так как номера документов меняются - накапливаются ошибки смещения Считай иногда абсолютное для уточнения, например раз минуту или на каждое 10-е изменение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 14:32 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
Да спасибо - но сильно не спасает... Странно - сама 1С умеет как то мгновенно определять положение ползунка - наверно в CDX информация о количестве записей каким то образом содержится - и вероятно это параметр "Количество существующих ключей" в записи вершины индексного файла(?) Структура индексного файла (.IDX) Может есть способы извлечь эту информацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 15:43 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
kiruhaМожет есть способы извлечь эту информацию? Открывай IDX как файл, читай и парси. Оно тебе надо для позиционирования бегунка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 16:01 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
Dima T kiruhaМожет есть способы извлечь эту информацию? Открывай IDX как файл, читай и парси. Оно тебе надо для позиционирования бегунка? Это идея :) Попробую - надеюсь команды работы с файлами выполняются достаточно быстро "Оно тебе надо для позиционирования бегунка?"- класс универсальный, заменяет родные формы списков 1С, должен работать не хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 16:37 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
kiruha Dima T kiruhaМожет есть способы извлечь эту информацию? Открывай IDX как файл, читай и парси. Оно тебе надо для позиционирования бегунка? Это идея :) Попробую - надеюсь команды работы с файлами выполняются достаточно быстро "Оно тебе надо для позиционирования бегунка?"- класс универсальный, заменяет родные формы списков 1С, должен работать не хуже. Все проще делается. OffSet выборки у вас есть. Бегунок позиционируется OffSet + смещение на странице. Быстрее не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2008, 05:51 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
Что есть offset ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2008, 07:12 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
Galyamov Rinat Что есть offset ? OffSet есть количество документов перед первым отображаемым. Обмен-то постраничный. Более того, исходя из размеров страницы (limit), можно перерассчитывать этот offset в момент навигации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2008, 14:39 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahan Galyamov Rinat Что есть offset ? OffSet есть количество документов перед первым отображаемым. Обмен-то постраничный. Более того, исходя из размеров страницы (limit), можно перерассчитывать этот offset в момент навигации. Приблизительно я так и считаю (более точно : размер запрашиваемой страницы определяется элементом управления отображающим таблицу и зависит от действий пользователя - но не суть) Так как работа в реальном времени накапливаются ошибки смещения. ... Просмотрел CDX в низкоуровневом доступе. Действительно параметр "Число существующих ключей " содержит количество записей, но, к сожалению, только для листов. Для узлов не явлющихся листами указывается количество подчиненных узлов. В листе 10-50 записей. Т.е. теоретически можно ускорить ~30 раз но не больше. В моем случае это ~10000 узлов и 300 000 записей. Т.е. для подсчета кол. записей все равно придется в среднем прочитать 5000 узлов что на порядки больше чем просто дать необходимые записи (обычно 10-50). Видимо придется работать с приблизительным количеством. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2008, 16:09 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
>kiruha >Делаю отображение таблицы ДБФ... Если 1С 7.7, то посмотри вариант 1Сpp + Табличное_Поле. Документация здесь . С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2008, 08:53 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
ВМоисеев>kiruha >Делаю отображение таблицы ДБФ... Если 1С 7.7, то посмотри вариант 1Сpp + Табличное_Поле. Документация здесь . С уважением, Владимир. Да, спасибо - как раз для адаптации данного элементу управления к чтению ДБФ файлов при помощи vfpoledb возник этот вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2008, 12:51 |
|
||
|
Можно ли быстрее чем COUNT FOR ?
|
|||
|---|---|---|---|
|
#18+
>kiruha >Да, спасибо ... В своих работах использовую страницы >= 250 строк (больше 10 "экранов"). Для перехода к новой странице использую дополнительные графические элементы (и PgUp/PgDn). Просмотр страницы в гриде "зацикливаю". Возможно и этот вариант Вас устроит? С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2008, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35364447&tid=1587676]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 328ms |

| 0 / 0 |
