Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

ограничить кол-во строк результата запроса   Найти похожие ветки 

 
Женя   (2004-04-19 12:56) [0]

нужно для создания превьюшки експортера базы.
Достаточно показать первые 10 строк, чтобы показать, как будет работать експорт.
Как организовать запрос?
пробовал:
select top 10 * from citi
select first 10 * from citi

получал ошибку синтаксиса.
Как можно реализовать задачу? кто знает, что это за конструкция fetch?


 
Reindeer Moss Eater ©   (2004-04-19 12:58) [1]

Показываешь в гриде?
Сделай его невысоким - и будет тебе не больше 10 записей.


 
Курдль ©   (2004-04-19 13:04) [2]

http://delphimaster.net/view/3-1082283525/


 
Anatoly Podgoretsky ©   (2004-04-19 13:04) [3]

select top 10 * from citi не поддержано в LocalSql
select first 10 * from citi не поддержано в LocalSql
fetch вроде тоже не поддержано

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


 
Женя   (2004-04-19 13:10) [4]

движок самый стандартный, на BDE, на сколько я понял, это и есть LocalSql.

грид я и так невысокий сделал, но не хочу ждать, пока в него вписывается все 45 000 записей, когда мне хватит 10.

ссылку видел. Не помогло.


 
Reindeer Moss Eater ©   (2004-04-19 13:12) [5]

В невысокий грид и так не будет вписываться 45000 записей.
Зачем не хотеть ждать того, чего и так не будет?


 
Женя   (2004-04-19 13:31) [6]

как это не будет? ведь в датасорс сразу весь результат выдается. А то что грид показывает-- это всего лишь видимая область. Или я что-то недопонимаю?


 
Anatoly Podgoretsky ©   (2004-04-19 13:39) [7]

Женя   (19.04.04 13:31) [6]
Почему ты так решил?
И второй вопрос почему ты думаешь, что в DataSource вообще есть хоть какие то данные, таи их просто нет, совсем.


 
Женя   (2004-04-19 13:49) [8]

я удивлен.
а зачем тогда татасорс вообще?

Я представляю процесс примерно так:

tQuery (аналог пхп-шного mysql_query)выполняет запрос и получает пакет данных.
tDatasource (аналог mysql_fetch_array) парсит полученный пакет на таблицу
tDbGrid обыкновенная визуализация, аналог html-таблицы.

А как на самом деле все работает? где об этом достоверно узнать?


 
Vlad ©   (2004-04-19 13:57) [9]


> Женя   (19.04.04 13:49) [8]

DBGrid в своем буфере содержит только видимую часть набора данных. Этот буфер называется DataLink, никаких 45 000 записей в него не "вписывается", ты изначально неверно поставил вопрос.
Собственно сам TQuery изначально не хранит весь набор данных, а фетчит записи по мере необходимости, т.е. по мере скроллинга.
Количество записей, которые изначально фетчатся в TQuery ты можешь посмотреть в настройках БДЕ-алиаса, параметр ROWSET SIZE.
Сомневаюсь что у тебя там стоит 45 000


 
Женя   (2004-04-19 14:06) [10]

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


 
Reindeer Moss Eater ©   (2004-04-19 14:10) [11]

Если бы конструкция select top поддерживалась, то ограничение видимого результата (еще один отдельный запрос для превью) приведет к обратному результату.
Производительность снизится.


 
Danilka ©   (2004-04-19 14:12) [12]

[10] Женя   (19.04.04 14:06)
Он и так ограничен. :))
ROWSET SIZE - это то количество записей, которые тебе приходят за один раз. Если ты выходишь за этот диапазон, тебе приходит очередная порция. Если не ошибаюсь, по-умолчанию он равен 20-и, то есть если в твоем гриде видимо меньше 20-и записей, то ты только их и получишь, а никак не 45000. :))


 
Женя   (2004-04-19 14:19) [13]

понял, всем спасибо



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
1-1082829945
kvazar
2004-04-24 22:05
2004.05.16
открытие файла


1-1083230057
Серж
2004-04-29 13:14
2004.05.16
Хоть кто нибудь использует UML в Дельфи?


14-1082971109
Igorek
2004-04-26 13:18
2004.05.16
А давайте поговорим,


11-1069056501
Deimos
2003-11-17 11:08
2004.05.16
вопрос по TMoveMethod


14-1082839973
Yegorchic
2004-04-25 00:52
2004.05.16
Отпревка SMS