Вверх ↑
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
#166: 2007-04-13 14:08:52 ЛС | профиль | цитата
nesco, я бы советовал делать задание нескольких параметров через одну точку путем использования МТ-технологии, потому что после возможного перехода на новую кодогенерацию использования аналога МТ будет наиболее эффективным способом передачи многих параметров в метод.
карма: 27
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#167: 2007-04-13 14:12:23 ЛС | профиль | цитата
Tad, таблица не занимается никакой сортировкой. Что ты ей дашь, то и получишь.

Tad писал(а):
Именно, грузиш то, что нужно видеть и чаще всего это всего одна запись из определенной таблицы БД при том только нужная(ые) колонка(и)

Вот это ты загнул. А если после сортировки получается 1000 записей и что, мне их всех в таблицу грузить?

[size=-2]------ Добавлено в 14:12
Dilma, понял, я так и сделаю. Специальные MT методы. Но старые оставлю для совместимости со старыми проектами. Когда я начинал делать эту таблицу MT технология была еще только в проекте.
карма: 22

0
Ответов: 3655
Рейтинг: 69
#168: 2007-04-13 14:59:30 ЛС | профиль | цитата
nesco писал(а):

Вот это ты загнул. А если после сортировки получается 1000 записей и что, мне их всех в таблицу грузить?

А причём здесь сортировка .
В БД хранятся все записи ,а в таблицу выводятся только необходимые в данный момент.
А это обычно несколько строк и ни как не 1000.
При правильном запросе.
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#169: 2007-04-13 15:38:57 ЛС | профиль | цитата
Вячеслав писал(а):
В БД хранятся все записи ,а в таблицу выводятся только необходимые в данный момент

Запрос в студию про динамический вывод N-го количества строк с I-го индекса отсортированных данных.
Я проверял на своей базе из 50000 записей сотрировку по определенному параметру. Минимально получалось около 500. Все 500 пришлось загонять в таблицу. А иначе как? А иначе только с запросом выше и при реакции таблицы на любой экранный чих c выдачей параметров I и N.

Ребята, вы чего-то не догоняете. Складывается впечетление, что у вас базы больше 100 записей и нет. 100 записей для таблицы -- фигня, а вот 1000 это -- серьезно (тройка секунд, точно есть). А зачем выводить 1000 или 100, когда можно вывести 20 в динамике (столько сколько видно на экране + немного на поддержку скролинга, и столько же хранить в таблице -- а больше нахрена, остальное -- в базе). Это у вас таких задач не возникало, а вот у меня возникли.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#170: 2007-04-13 15:40:52 ЛС | профиль | цитата
nesco писал(а):
Вот это ты загнул. А если после сортировки получается 1000 записей и что, мне их всех в таблицу грузить?
Кто куда загнул.
Вячеслав писал(а):
При правильном запросе.
Опять согласен с Вячеславом... Какой запрос - такой результат.
Да, если
SELECT fam, name, otch FROM Москва WHERE fam='Иванов' ORDER BY name
то может быть и больше 10 000, но если нужно узнать сколько Ивановых в Москве, то запрос совершенно другой. Запрос он на то и запрос, чтобы не искать в StringTable глазами , а сразу получить готовый ответ
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#171: 2007-04-13 15:47:04 ЛС | профиль | цитата
Ну тогда, согласно ваших измышлений, Кладов -- дурак (в чем я оооочень сильно сомневаюсь), если пишит вот такие вещи
Кладов писал(а):
(виртуальные списки тем и отличаются от обычных, что текст и изображения программа хранит у себя, и в результате появляется возможность быстро работать с огромными списками данных);

карма: 22

0
Ответов: 3655
Рейтинг: 69
#172: 2007-04-13 15:55:40 ЛС | профиль | цитата
Я вообще считаю что таблиц с 10000 ми записей недолжно быть.
То есть должно быть несколько таблиц разделённых по тематике.

[size=-2]------ Добавлено в 15:55
nesco писал(а):
если пишит вот такие вещи

А при чём тут виртуальные списки и вывод необходимых данных в таблицу.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#173: 2007-04-13 16:45:20 ЛС | профиль | цитата
nesco, только что подключился к одной базе. Не SQLite, но формат запросов почти такой-же.
Время точно оценить не могу,т.к. подключался через Inet.
На запрос:
SELECT count(*) FROM <имя базы>
ответ: записей - 9 миллионов с копейками. Сам удивился.
Запрос на поиск моей фамилии, выдал 53 строки - 1м 40 сек
Запрос на поиск с Where фам=<моя фамилия> and город=<мой город> выдал 4 строки - 2м 30 сек
Запрос на поиск с Where город=<мой город> and фам=<моя фамилия> выдал те-же 4 строки но за 40 сек

[size=-2]------ Добавлено в 16:45
SELECT fam AS Фамилия,name AS Имя, oth AS Отчество FROM <tabl> ORDER BY Фамилия
именно и создаст виртуальный список
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#174: 2007-04-13 16:51:07 ЛС | профиль | цитата
Tad, это работа запросов, а не таблицы. В таблицу вывелось, максимум, 53 строки.
Вячеслав, например ты не знаешь спицифику моей базы. Пока это список (но хочу сделать базой), состоящий из 30000-50000 записей в сутки определенных процессов. Процессы никак нельзя разделить по тематике -- это должен быть непрерывный список, независящий от предварительно установленных параметров (тип,номер, время, событие -- все это может извне меняться независимо от меня). Tad обращался к подобной базе. Ну так вот номеров может быть больше тыячи, типов около шести (но может и вырасти). Если отсев производить по номеру, то получится около 50 записей, если по типу, то -- от 1000 до 5000, если по событию, то от 10 -- 2000. И что, мне всю это полученную лабуду в таблицу пихать? Загрузка 5000 строк в таблицу занимает около 5-10 сек (неважно откуда).

[size=-2]------ Добавлено в 16:51
Tad писал(а):
именно и создаст виртуальный список

но список базы, а не таблицы, а в таблицу будет выведен весь "ORDER BY". Для таблицы это -- внешний виртуальный список.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#175: 2007-04-13 17:22:51 ЛС | профиль | цитата
nesco писал(а):
если по типу, то -- от 1000 до 5000
nesco, я понимаю, что может быть много записей. Не понимаю - зачем на них смотреть?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3655
Рейтинг: 69
#176: 2007-04-13 17:42:38 ЛС | профиль | цитата
nesco писал(а):
это должен быть непрерывный список

Так пускай он и будет в Базе.
А в таблицу зачем его весь выводить.
Tad писал(а):
Не понимаю - зачем на них смотреть?

Согласен.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#177: 2007-04-13 17:54:24 ЛС | профиль | цитата
select имя1, имя2 from <table> Limit 20 offset %1
может тебе нужно такой запрос
В переводе:
Выбрать все записи из таблицы БД и выводить в StringTable имя1, имя2 по 20 записей (Limit 20 ) начиная с записи (offset %1) где %1 можеш задавать кнопками Вперед, Назад. И листай себе наздоровье.
Ну никак я не пойму - чего хочешь.
Ты скажи, ты скажи
Чё те надо, чё надо ?

[size=-2]------ Добавлено в 17:54
Вот тебе стандартный скелет запроса
SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
[GROUP BY expr-list]
[HAVING expr]
[compound-op select]*
[ORDER BY sort-expr-list]
[LIMIT integer [(OFFSET|,) integer]]

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#178: 2007-04-13 18:01:07 ЛС | профиль | цитата
Tad писал(а):
Вперед, Назад

Во-во. Только вместо этих кнопок скролинг таблицы.
А вот теперь подробнее, что может выдавать таблица
1. Число 20 -- количество видимых строк + немного для скролинга. Дальше, извне формируем строку Limit 20
2. %1 -- Внутренний счетчик позиции и выводитmся на экран будет начина c TopRow (самая верхняя строка), на основании чего будем формировать извне строку offset %1
карма: 22

0
Ответов: 3655
Рейтинг: 69
#179: 2007-04-13 18:04:39 ЛС | профиль | цитата
nesco,
Выложил бы для примера 10000 записей и сказал что тебе надо с ними сделать .
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#180: 2007-04-13 18:18:12 ЛС | профиль | цитата
Вячеслав, Да причем тут 10000 записей? Я хотел предложить динамическую отрисовку таблицы, в которо не хранится 10000 записей, а просто при отрисовке выдает данные для запроса к базе и, затем, считывает полученные данные из базы, кторые и отображает на экране. Внутренний список таблицы используется как экранный кэш, вот и все, что я предлагал.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)