Перейти к содержанию
Fire Monkey от А до Я
  • 0

Правильная ли практика применения!


CodeToad

Вопрос

Здравствуйте!  вопрос к знающим. Правильна ли практика применения заполнения сетки в зависимости от выбора в родительском списке(не parent!!)

StrGrd.RowCount:=0;

 while not(Тquery.Eof) do
      begin

StrGrd.RowCount:=StrGrd.RowCount:+1

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

  query.Next;
      end;

Для  FMX8 при запросе возвращающем 1 строку вызывает exeption.  Разобрался из-за чего, но по правилам

Запрещено публиковать найденные ошибки .

Но может так не правильно очищать сетку для последующего заполнения может  это  wrong way?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

если строки сразу не заполняются данными, то гораздо правильнее подсчитать кол-во записей и только потом разово выставить RowCount

в противном случае лучше добавлять не по 1 а сразу по 10 например, а в конце ограничить RowCount явно

Ссылка на комментарий
  • 0
5 минут назад, CodeToad сказал:

StrGrd.RowCount:=StrGrd.RowCount:+1

Это плохо. Лучше сделать Last/First возвращенного датасета (чтобы он 100% подсчитал количество строк) и сразу выставить нужное количество строк для грида.

Ссылка на комментарий
  • 0

а если кол-во записей не ограничено разумными рамками, то самый лучший вариант - изначально отдельным запросом узнать, сколько их вообще, и не гнать в программу всё, а делать выборку по частям

Ссылка на комментарий
  • 0

RecordCount - это количество зафетченных на клиента записей, а не кол-во записей датасета

First; Last; конечно приведут RecordCount в правильное состояние, но вы 10 раз об этом пожалеете, если на мобилу приедут все ваши 100500 записей, а нужно было только 100

Ссылка на комментарий
  • 0
2 минуты назад, krapotkin сказал:

RecordCount - это количество зафетченных на клиента записей, а не кол-во записей датасета

First; Last; конечно приведут RecordCount в правильное состояние, но вы 10 раз об этом пожалеете, если на мобилу приедут все ваши 100500 записей, а нужно было только 100

что значит зафетченных?
Я пользуюсь данной функцией довольно часто. Если надо создать компоненты по количеству строк в таблице и если необходимо построить список по выборке данных из sql-запроса

Ссылка на комментарий
  • 0

фетч это передача блока данных с сервера на клиента

если сервер приготовил вам 10000 строк, то на клиента обычно приходит меньше, столько, сколько заказано в буфере компонентов доступа

у разных компонентов - разная стратегия

Ссылка на комментарий
  • 0
48 минут назад, krapotkin сказал:

фетч это передача блока данных с сервера на клиента

если сервер приготовил вам 10000 строк, то на клиента обычно приходит меньше, столько, сколько заказано в буфере компонентов доступа

у разных компонентов - разная стратегия

ясно.ну может быть. я такие огромные количества данных не запрашивал с сервера. максимум 500-1000 записей. надо ради интереса попробовать хоть раз

Ссылка на комментарий
  • 0

я раз 100 уже рассказывал людям разным, что "давайте сначала откроем весь список" - это плохой подход. так что оказывается это не всем очевидно)))

в одном месте даже ругался с начальством. а контора при этом писала коммерческое ПО )))

Ссылка на комментарий
  • 0
49 минут назад, krapotkin сказал:

"давайте сначала откроем весь список" - это плохой подход. так что оказывается это не всем очевидно

Это далеко не всем очевидно :)

Есть определенная категория пользователей и работающих на них программистов - финансисты. Дык вот, эта категория действительно считает, что они должны видеть все, абсолютно все данные сразу. На самом деле, им это конечно не нужно. Но надо! :) При этом на предложение сделать lazy load делаются круглые глаза и "не, это слишком сложно". Ну да, лучше получать Out of memory...:wacko:

Изменено пользователем kami
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...