![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ограничить кол-во строк результата запроса [D7, dBase, FoxPro, Paradox]
Женя © (2004-04-19 12:56:00)нужно для создания превьюшки експортера базы.
Достаточно показать первые 10 строк, чтобы показать, как будет работать експорт.
Как организовать запрос?
пробовал:
select top 10 * from citi
select first 10 * from citi
получал ошибку синтаксиса.
Как можно реализовать задачу? кто знает, что это за конструкция fetch?
Женя (2004-04-19 14:19:00) [1]понял, всем спасибо
Danilka (2004-04-19 14:12:00) [2][10] Женя (19.04.04 14:06)
Он и так ограничен. :))
ROWSET SIZE - это то количество записей, которые тебе приходят за один раз. Если ты выходишь за этот диапазон, тебе приходит очередная порция. Если не ошибаюсь, по-умолчанию он равен 20-и, то есть если в твоем гриде видимо меньше 20-и записей, то ты только их и получишь, а никак не 45000. :))
Reindeer Moss Eater (2004-04-19 14:10:00) [3]Если бы конструкция select top поддерживалась, то ограничение видимого результата (еще один отдельный запрос для превью) приведет к обратному результату.
Производительность снизится.
Женя (2004-04-19 14:06:00) [4]ок, понял. То есть ограничение видимого результата в быстродействии не даст, а значит и делать его не стоит?
Vlad (2004-04-19 13:57:00) [5]
> Женя (19.04.04 13:49) [8]
DBGrid в своем буфере содержит только видимуючасть набора данных. Этот буфер называется DataLink, никаких 45 000 записей в него не "вписывается", ты изначально неверно поставил вопрос.
Собственно сам TQuery изначально не хранит весьнабор данных, а фетчит записи по мере необходимости, т.е. по мере скроллинга.
Количество записей, которые изначально фетчатся в TQuery ты можешь посмотреть в настройках БДЕ-алиаса, параметр ROWSET SIZE.
Сомневаюсь что у тебя там стоит 45 000
Женя (2004-04-19 13:49:00) [6]я удивлен.
а зачем тогда татасорс вообще?
Я представляю процесс примерно так:
tQuery (аналог пхп-шного mysql_query)выполняет запрос и получает пакет данных.
tDatasource (аналог mysql_fetch_array) парсит полученный пакет на таблицу
tDbGrid обыкновенная визуализация, аналог html-таблицы.
А как на самом деле все работает? где об этом достоверно узнать?
Anatoly Podgoretsky (2004-04-19 13:39:00) [7]Женя (19.04.04 13:31) [6]
Почему ты так решил?
И второй вопрос почему ты думаешь, что в DataSource вообще есть хоть какие то данные, таи их просто нет, совсем.
Женя (2004-04-19 13:31:00) [8]как это не будет? ведь в датасорс сразу весь результат выдается. А то что грид показывает-- это всего лишь видимая область. Или я что-то недопонимаю?
Reindeer Moss Eater (2004-04-19 13:12:00) [9]В невысокий грид и так не будет вписываться 45000 записей.
Зачем не хотеть ждать того, чего и так не будет?
Женя (2004-04-19 13:10:00) [10]движок самый стандартный, на BDE, на сколько я понял, это и есть LocalSql.
грид я и так невысокий сделал, но не хочу ждать, пока в него вписывается все 45 000 записей, когда мне хватит 10.
ссылку видел. Не помогло.
Курдль (2004-04-19 13:04:00) [11]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1082283525&n=1
Anatoly Podgoretsky (2004-04-19 13:04:00) [12]select top 10 * from citi не поддержано в LocalSql
select first 10 * from citi не поддержано в LocalSql
fetch вроде тоже не поддержано
Если у тебя другой движок, то сам виноват, что не указываешь.
Reindeer Moss Eater (2004-04-19 12:58:00) [13]Показываешь в гриде?
Сделай его невысоким - и будет тебе не больше 10 записей.