Прокручивание в DBGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Прокручивание в DBGrid

Сообщение mrkaban » 04.12.2016 18:06:10

Здравствуйте Уважаемые Форумчане!

Сразу прошу прощения за глупый вопрос, но что-то не могу разобраться. Используется компонент DBGrid.

Речь об индикаторе положения сбоку. Изображение

Столкнулся с проблемой, что по мере прокрутки вниз, он может изменяться, как будто дополнительная информация погружается.

То есть, изначально отображается один размер, но когда начинаешь прокручивать вниз, по мере прокрутки он меняется.
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Прокручивание в DBGrid

Сообщение Ism » 05.12.2016 02:20:41

Потому что датасет отдает прописанный в нем буфер первых записей
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Прокручивание в DBGrid

Сообщение alexs » 05.12.2016 10:13:25

Каким набором данных пользуешься? Посмотри у него метод FetchAll. Если есть - то можешь вызвать его после открытия датасета.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Прокручивание в DBGrid

Сообщение Lucifer » 05.12.2016 13:03:22

alexs писал(а):Если есть - то можешь вызвать его после открытия датасета.

Но лучше так не делать. Если данных будет много, то есть риск поиметь большой геморрой.
Lucifer
постоялец
 
Сообщения: 110
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: Прокручивание в DBGrid

Сообщение alexs » 05.12.2016 14:39:53

Lucifer писал(а):Но лучше так не делать. Если данных будет много, то есть риск поиметь большой геморрой.

А зачем тогда писать такие запросы? С большим набором данных в итоге? И потом его не выбирать? Зачем сервер мучать?
И кстати - FireBird такое позволяет. А тот же MS SQL - нет. Будь добр забрать все данные. Да и PG также.
Мой FBDataSet может не выбирать всё. А вот ZEOS по умолчанию работает с выборкой всего.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Прокручивание в DBGrid

Сообщение mrkaban » 05.12.2016 16:34:52

Прошу прощения, я новичок. У меня используется SQLite = TSQLite3Connection + TSQLTransaction + TDataSource + TSQLQuery. Прошу прощения, мне следовало данный момент прояснить сразу, не подумал.

Добавлено спустя 9 минут 16 секунд:
На
SQLQuery1.FetchAll;
говорит
main.pas(543,11) Error: identifier idents no member "FetchAll"
, может нужно какую-то библиотеку подгрузить?
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Прокручивание в DBGrid

Сообщение Снег Север » 06.12.2016 08:56:22

Значит, FetchAll в этих компонентах не поддерживается.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2995
Зарегистрирован: 27.11.2007 16:14:47

Re: Прокручивание в DBGrid

Сообщение pupsik » 06.12.2016 09:52:48

Код: Выделить всё
TSQLQuery.PacketRecords := 0
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Прокручивание в DBGrid

Сообщение mrkaban » 06.12.2016 11:18:11

При попытке поставить 0 пишет
PacketRecords has to be larger then 0


По умолчанию стояло 10. Однако, поставив 100 обнаружил, чтобы проблема пропала.

Спасибо большое!!!
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Прокручивание в DBGrid

Сообщение pupsik » 06.12.2016 18:09:29

mrkaban или -1 надо написать. Не помню уже. Это выборка всех данных, а не кусками.

Добавлено спустя 4 минуты 31 секунду:
http://wiki.freepascal.org/SqlDBHowto

An alternative is available. The number of records returned by the server is set by the '.PacketRecords' property. The default value is 10; if you make it -1 then all records will be loaded at once.
In current stable FPC, '.RecordCount' does not take filters into account, i.e. it shows the unfiltered total.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Прокручивание в DBGrid

Сообщение mrkaban » 06.12.2016 18:16:54

Интересно... но 1 тоже попробовал, ошибки не было, но не помогло...

Я правильно понимаю, что это количество данных, которое подружается?
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Прокручивание в DBGrid

Сообщение pupsik » 06.12.2016 18:33:26

mrkaban минус 1 .........
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Прокручивание в DBGrid

Сообщение mrkaban » 06.12.2016 18:40:36

Действительно, с минус 1 тоже работает. Спасибо!
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: sunjob и гости: 20

Рейтинг@Mail.ru