Конференция "Базы" » Как узнать - выбрался ли весь набор?
 
  • Дмитрий Белькевич © (15.05.15 13:21) [0]
    Сущевует ли у датасета или грида какое-то публичное свойство, которое указывает, что датасет выбрал (отфетчил) весь набор данных?
  • Дмитрий Белькевич © (15.05.15 13:22) [1]
    База - FB 2.1, если что.
  • кгшзх © (15.05.15 15:21) [2]
    нафига это знать?
    начни бежать сверху вниз и всегда дойдешь до самого конца выборки.

    а если тебе это не надо, то не надо и знать вся она уже или не вся прилетела.
  • Ega23 © (15.05.15 15:30) [3]

    > Сущевует ли у датасета или грида какое-то публичное свойство,
    >  которое указывает, что датасет выбрал (отфетчил) весь набор
    > данных?


    DataSet.Eof;  :)

    А вообще:
    with DataSet do
    begin
     Open;
     Last;
     // Вот тут вот - всё выбрано.
    end;


    Если TIBSQL будешь использовать, то аля-улю, он однопроходный.
  • sniknik © (15.05.15 15:44) [4]
    у ADO датасета ExecuteOptions = [] однозначно показывает что выбралось все сразу после команды Open, в других есть не свойство но событие прогресса и окончания выборки.

    с базой - FB 2.1 можно работать через ADO, если что.
  • Дмитрий Белькевич © (15.05.15 15:49) [5]
    >нафига это знать?

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

    >DataSet.Eof

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

    >Вот тут вот - всё выбрано.

    не стоит задача выбрать всё. стоит задача определить - выбралось ли всё или нет.

    спасибо всем, еще может мысли будут.
  • Дмитрий Белькевич © (15.05.15 15:51) [6]
    да, я думал событие ловить, вроде бы что-то такое было. если других вариантов нет - придется делать внутренний флаг и ловить.
  • кгшзх © (15.05.15 15:52) [7]
    не стоит задача выбрать всё. стоит задача определить - выбралось ли всё или нет.

    ложная задача поверь.

    если выбирать всего не нужно, то сами данные "конца выборки" - не нужны.
    значит абсолютно пофик должно быть, все выбралось или нет.
  • Дмитрий Белькевич © (15.05.15 15:54) [8]
    поверь, задача истинная. нужно юзерам разное показывать, в зависимости от того, выбралось всё или нет. юзеры так хотят. юзеры за это платят, значит задача истинная - всё просто 1:)
  • кгшзх © (15.05.15 15:55) [9]
    ок, последним постом ты убедил меня окончательно.

    задача твоя ЛОЖНАЯ
  • Дмитрий Белькевич © (15.05.15 15:56) [10]
    моя задача истинная, я гарантирую это! :)
  • кгшзх © (15.05.15 15:59) [11]
    покажи юзеру такое сразу после оупена:

    "все уже загрузилось целиком, гарантирую это! Если не верите, пройдите в самый конец по Ctrl+PGDown"
  • Игорь Шевченко © (15.05.15 17:02) [12]
    Дмитрий Белькевич ©   (15.05.15 15:54) [8]


    > юзеры за это платят


    Нельзя ли подробнее о задаче ?
  • Ega23 © (15.05.15 17:03) [13]

    > стоит задача определить - выбралось ли всё или нет.


    Ковырять конкретный потомок TDataSet, остальное от лукавого.
  • кгшзх © (15.05.15 17:12) [14]
    Нельзя ли подробнее о задаче ?

    там наверняка что-то типа
    когда грид еще не наполнился всеми данными он пусть будет красный.
    а когда уже наполнился, пусть будет белым чтобы было понятно, что можно листать в конец.
  • Jeer © (15.05.15 20:12) [15]
    Задача неверно поставлена, а также - реализация.
  • Плохиш © (15.05.15 23:52) [16]

    > Дмитрий Белькевич ©   (15.05.15 15:54) [8]
    > поверь, задача истинная. нужно юзерам разное показывать,
    >  в зависимости от того, выбралось всё или нет. юзеры так
    > хотят. юзеры за это платят, значит задача истинная - всё
    > просто 1:)

    Для "юзера", если он видит данные, то все данные загружены. Не верит, пусть докажет обратное.

    PS. Не юзерего дело следить за закачкой данных, подозреваю, что он за другое зарплату получает.
  • Inovet © (16.05.15 05:29) [17]
    > [5] Дмитрий Белькевич ©   (15.05.15 15:49)
    > >DataSet.Eof
    >
    > да, смотрел в первую очередь. срабатывает только если курсор грида стоит на последней записи, иначе - не eof.

    Это означает, что разработчики не допустили ошибки в функции Eof().
  • Inovet © (16.05.15 05:50) [18]
    > [5] Дмитрий Белькевич ©   (15.05.15 15:49)
    > курсор грида

    Этот момент я сразу не увидел. Значит, разработчики функции, таки, допустили ошибку.
  • Плохиш © (16.05.15 12:02) [19]
    Eof метод документирован ещë со времëн царя гороха и, как в справке написано, показывает только то, что текущая запись в наборе данных является последней и больше ничего.
 
Конференция "Базы" » Как узнать - выбрался ли весь набор?
Есть новые Нет новых   [118448   +36][b:0][p:0.001]