Конференция "Начинающим" » число записей при sql запросе
 
  • vasa777 (20.06.12 12:16) [0]
    на форме связаны
    dbgrid
    adconnection
    adoquery
    datasource

    по кнопке в квери выполняется sql запрос и заполняется грид. как узнать число записей в нем?
  • Кщд (20.06.12 12:34) [1]
    число записей в dbgrid или возвращаемых запросом?
  • vasa777 (20.06.12 12:35) [2]
    а это не одно и тоже?
    тех, которые возратил запрос.
  • vasa777 (20.06.12 12:39) [3]
    ++ и как из этого грида получить скажем 4ю запись?
    или лучше табле прикрутить и с ней работать?
  • sniknik © (20.06.12 12:42) [4]
    > а это не одно и тоже?
    выгляни в окно... видишь дорога? вот ее длинна или длинна того, что в окне, это одно и тоже?

    > скажем 4ю запись?
    как получить адрес 4го указателя "стоп" на дороге?
  • vasa777 (20.06.12 12:56) [5]
    если вы про ограничение в 2500 - возвращаемых записей мало, около 300.
    4 - в квери не прописаны поля (в редакторе), но известны их имена (столбики), как получить значения 4 записи для поля скажем xxx
  • vasa777 (20.06.12 13:03) [6]
    ага нашел RecordCount и recno
  • Anatoly Podgoretsky © (20.06.12 13:43) [7]
    Свидетель постоянно путал грид и набор данных.
  • Anatoly Podgoretsky © (20.06.12 13:44) [8]
    Теперь скажи что такое recno для парадокса и фокс про, одно это тоже или нет?
  • Anatoly Podgoretsky © (20.06.12 13:45) [9]

    > Свидетель постоянно путал грид и набор данных.

    Ладно не мучайся - в гриде нет данных/записей
  • И. Павел © (20.06.12 14:08) [10]
    Да, тяжело приходится человеку, начинающему изучать Delphi и забредшему на этот форум :)


    > [0] vasa777   (20.06.12 12:16)

    С RecordCount поосторожнее будьте. Для некоторых БД и для некоторых настроек других БД (кажется, для каких-то типов курсоров) он может показывать —1.
  • Ega23 © (20.06.12 14:21) [11]

    > С RecordCount поосторожнее будьте. Для некоторых БД и для
    > некоторых настроек других БД (кажется, для каких-то типов
    > курсоров) он может показывать —1.


    С RecNo - ещё осторожнее надо быть, там -1 гораздо чаще встречается.


    > vasa777   (20.06.12 12:35) [2]
    >
    > а это не одно и тоже?
    > тех, которые возратил запрос.


    Это не одно и то же. В DBGrid ты видишь только то, что влезает на экран по вертикали + [0..2] записей.
    Если у тебя именно ADOQuery и с курсором ты ничего не мудрил, то можешь смело RecordCount использовать.
  • Кщд (20.06.12 14:25) [12]
    >И. Павел ©   (20.06.12 14:08) [10]
    >Да, тяжело приходится человеку, начинающему изучать Delphi и забредшему на этот форум :)

    нет, тяжело лишь начинающему писать на Delphi, не начав его изучать
  • Dennis I. Komarov © (20.06.12 15:06) [13]

    > как узнать число записей в нем?

    Зачем?

    > и как из этого грида получить скажем 4ю запись?

    Зачем? Точно из грида?

    <telepator>for i := 1 to RecordCount do</>
    Так не делай...
  • sniknik © (20.06.12 16:35) [14]
    > если вы про ограничение в 2500
    первый раз слышу, какие ограничения? в чем?
  • DVM © (20.06.12 16:49) [15]

    > vasa777   (20.06.12 12:16) 

    1) Число записей можно узнать только специальным запросом, который возвратит число записей.
    2) Число записей можно узнать, пробежавшись по всем записям в ответе на запрос и посчитав их.
    3) DBGrid не содержит данных, а лишь отображает.
    4) DataSet, к которому привязан DBGrid может содержать данные (если он  "двунаправленный", т.е. когда в нем можно перемещаться назад, а может и не содержать всех, а только часть, если "однонаправленный" и перемещаться имеет смысл только вперед).
    5) DataSet может не содержать всех данных, если он "двунаправленный" и если в нем не переместились в конец.

    Т.е. вообще говоря количество записей неизвестно никому - ни серверу, ни клиенту, ни гриду, ни датасету, только если серверу не отдали специальной команды - посчитать записи.
 
Конференция "Начинающим" » число записей при sql запросе
Есть новые Нет новых   [134463   +61][b:0][p:0.001]