![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
число записей при sql запросе
vasa777 © (2012-06-20 12:16:00)на форме связаны
dbgrid
adconnection
adoquery
datasource
по кнопке в квери выполняется sql запрос и заполняется грид. как узнать число записей в нем?
DVM (2012-06-20 16:49:00) [1]
> vasa777 (20.06.12 12:16)
1) Число записей можно узнать только специальным запросом, который возвратит число записей.
2) Число записей можно узнать, пробежавшись по всем записям в ответе на запрос и посчитав их.
3) DBGrid не содержит данных, а лишь отображает.
4) DataSet, к которому привязан DBGrid может содержать данные (если он "двунаправленный", т.е. когда в нем можно перемещаться назад, а может и не содержать всех, а только часть, если "однонаправленный" и перемещаться имеет смысл только вперед).
5) DataSet может не содержать всех данных, если он "двунаправленный" и если в нем не переместились в конец.
Т.е. вообще говоря количество записей неизвестно никому - ни серверу, ни клиенту, ни гриду, ни датасету, только если серверу не отдали специальной команды - посчитать записи.
sniknik (2012-06-20 16:35:00) [2]> если вы про ограничение в 2500
первый раз слышу, какие ограничения? в чем?
Dennis I. Komarov (2012-06-20 15:06:00) [3]
> как узнать число записей в нем?
Зачем?
> и как из этого грида получить скажем 4ю запись?
Зачем? Точно из грида?
<telepator>for i := 1 to RecordCount do</>
Так не делай...
Кщд (2012-06-20 14:25:00) [4]>И. Павел © (20.06.12 14:08) [10]
>Да, тяжело приходится человеку, начинающему изучать Delphi и забредшему на этот форум :)
нет, тяжело лишь начинающему писатьна Delphi, не начав его изучать
Ega23 (2012-06-20 14:21:00) [5]
> С RecordCount поосторожнее будьте. Для некоторых БД и для
> некоторых настроек других БД (кажется, для каких-то типов
> курсоров) он может показывать —1.
С RecNo - ещё осторожнее надо быть, там -1 гораздо чаще встречается.
> vasa777 (20.06.12 12:35) [2]
>
> а это не одно и тоже?
> тех, которые возратил запрос.
Это не одно и то же. В DBGrid ты видишь только то, что влезает на экран по вертикали + [0..2] записей.
Если у тебя именно ADOQuery и с курсором ты ничего не мудрил, то можешь смело RecordCount использовать.
И. Павел (2012-06-20 14:08:00) [6]Да, тяжело приходится человеку, начинающему изучать Delphi и забредшему на этот форум :)
> [0] vasa777 (20.06.12 12:16)
С RecordCount поосторожнее будьте. Для некоторых БД и для некоторых настроек других БД (кажется, для каких-то типов курсоров) он может показывать 1.
Anatoly Podgoretsky (2012-06-20 13:45:00) [7]
> Свидетель постоянно путал грид и набор данных.
Ладно не мучайся - в гриде нет данных/записей
Anatoly Podgoretsky (2012-06-20 13:44:00) [8]Теперь скажи что такое recno для парадокса и фокс про, одно это тоже или нет?
Anatoly Podgoretsky (2012-06-20 13:43:00) [9]Свидетель постоянно путал грид и набор данных.
vasa777 (2012-06-20 13:03:00) [10]ага нашел RecordCount и recno
vasa777 (2012-06-20 12:56:00) [11]если вы про ограничение в 2500 - возвращаемых записей мало, около 300.
4 - в квери не прописаны поля (в редакторе), но известны их имена (столбики), как получить значения 4 записи для поля скажем xxx
sniknik (2012-06-20 12:42:00) [12]> а это не одно и тоже?
выгляни в окно... видишь дорога? вот ее длинна или длинна того, что в окне, это одно и тоже?
> скажем 4ю запись?
как получить адрес 4го указателя "стоп" на дороге?
vasa777 (2012-06-20 12:39:00) [13]++ и как из этого грида получить скажем 4ю запись?
или лучше табле прикрутить и с ней работать?
vasa777 (2012-06-20 12:35:00) [14]а это не одно и тоже?
тех, которые возратил запрос.
Кщд (2012-06-20 12:34:00) [15]число записей в dbgrid или возвращаемых запросом?