Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 26, 2007 13:27:48

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

balu
Я имею в виду наполнение виджета данными из СУБД. Если результат выборки миллион записей - ты их каждый раз все в грид пихаешь или таки по частям.
У меня вся база около 6 тысяч записей, о миллионах речь не идет. Поэтому все сразу кидаю в таблицу. Кроме этого есть фильтры, т.е. все записи будут в таблице, если выбирут все.



Офлайн

#2 Фев. 27, 2007 09:33:37

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

proDiva
У меня вся база около 6 тысяч записей ….. Поэтому все сразу кидаю в таблицу
У тебя будет прога тормозить каждый раз, когда ты будешь перечитывать записи. И еще, умные люди сразу делают с “запасом прочности”. Потому что сегодня у тебя 6 тыс. записей, а завтра 20 т., послезавтра еще больше. И еще, надо ли пользователю видеть все 6т записей? Вот посмотри, http://b-al-u.livejournal.com/5145.html в результате запроса около 30 т. записей, таблица начинает подтормаживать при загрузке после 10 т. Раньше я для таких целей писал кеш, теперь с питошей все намного проще. Прога грузит последовательно по 150 записей. Заодно у меня самое сложное - написать SQL-запрос. Дальше все генерируется автоматически - запросы на модификацию, диалоги на сортировку, поиск, модификацию (включая master-detail связи). Очень рекомендую такое сделать.



Отредактировано (Фев. 27, 2007 09:45:55)

Офлайн

#3 Фев. 27, 2007 16:33:05

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

balu
Вот посмотри, http://b-al-u.livejournal.com/5145.html в результате запроса около 30 т. записей, таблица начинает подтормаживать при загрузке после 10 т.
И что мне с этим делать? я там увидела только картинку.



Офлайн

#4 Фев. 27, 2007 16:45:19

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

balu
от посмотри, http://b-al-u.livejournal.com/5145.html в результате запроса около 30 т. записей
а что это за прога - для чего?



Офлайн

#5 Фев. 28, 2007 15:02:26

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

pythonwin
а что это за прога - для чего?
Морды для работы с базами данных. Всякие там склады, бухгалтерии и подобная чушь. Ну и администрирование до кучи.



Офлайн

#6 Фев. 28, 2007 15:04:20

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

proDiva
И что мне с этим делать? я там увидела только картинку.
пример организации ДБГрида. Какраз видна реализация того, о чем я писал выше.



Офлайн

#7 Фев. 28, 2007 16:24:55

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

balu
пример организации ДБГрида. Какраз видна реализация того, о чем я писал выше.
Вот если бы я увидела его код, тогда бы я применила его на своем деле;) а от того что я увидела его вид, мне легче не стало……. я не знаю, как его реализовать))
Еще проблема - как достать выбранную запись для редактирования? Щас сижу ищу примеры. Если сможете облегчить мне жизнь готовым примером, буду благодарна))



Офлайн

#8 Фев. 28, 2007 18:36:51

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

proDiva
Вот если бы я увидела его код, тогда бы я применила его на своем деле;) а от того что я увидела его вид, мне легче не стало……. я не знаю, как его реализовать))
Ccылку, как сделать то, что показано на рисунке я приводил. Ваши проблемы у меня давно решены. Но код я открою не раньше, чем ч-з пол-года. Но с проблемой постараюсь помочь завтра.



Офлайн

#9 Март 1, 2007 08:53:55

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

balu
Ваши проблемы у меня давно решены. Но код я открою не раньше, чем ч-з пол-года. Но с проблемой постараюсь помочь завтра.
Нет слов, одни эмоции ))))))



Офлайн

#10 Март 1, 2007 09:50:38

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные в Grid

Итак. Судя по вашему посту

proDiva
Еще проблема - как достать выбранную запись для редактирования? Щас сижу ищу примеры.
У вас результате запроса данные пихаются прямо в нужный вам виджет и вы нигде данные, возвращаемые cursor.fetchXXX больше не храните. Я бы сделал так:
1) Создал бы класс, (DBQuery) который реагирует на ваши запросы и все с ними связанное (читай python DB API, есть мой перевод на этом сайте), которое в вашем решении вы сочтете нужным применить. Этот класс возвращает результирующий набор в виде
2) Создаете класс (DBGRID), основанный на вашем виджете, например, таблица. В самом классе DBGRID создаете экземпляр DBQuery и данные, возвращаемые DBQuery (не забывайте, что это ) пихайте в промежуточный список и в таблицу построчно. Тоесть строка 0-(record0), строка 1-(record1) и т.д. Теперь, при обращении к конкретной записи вы всегда сможете достучаться по индексу (номеру конкретной строки) из таблицы в сохраненном вами ромежуточный списке. Промежуточный список полезен вам будет и при операциях модификации когда вы оставляете нетронутым список из DBQuery. Можно, конечно менять и его, но мне этот вариант почему-то не понравился, не помню уже.
3) Если вы все-таки послушаетесь меня и сделаете загрузку данных в таблицу по частям то вам надо будет отслеживать перемещения текущей позиции курсора таблицы. Так вот, если курсор приближается к концу таблицы на n записей вы просто вызываете метод Next, как показано в примере по ссылке.

Ну вот так, в первом приближении, процесс описал. Надеюсь суть уловили. Само-собой вам придется обвешать ваши DBQuery и DBGRID своими методами, которые вы сочтете нужным придумать.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version