Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

LIMITed Select in IB/FB [D6, IB6.x]


Dimedrol ©   (2002-08-21 14:34:00) 

Коллеги, никто не знает как реализовать в IB/FB выборку заданного числа записей ?
Как это сделано в MySQL : select * from table1 limit 100

Можно ли это вообще сделать БЕЗ написания StoredProcedur-ы ?


Desdechado   (2002-08-22 10:51:00) [1]

2 Prooksius © (21.08.02 20:40)
неправ насчет стандартных компонент. там тоже фетчится по мере надобности.


Prooksius   (2002-08-21 20:40:00) [2]

Насчет генератора - действительно красиво! Ни за что бы не догадался ... :-)
Ребята, я сталкивался в стандартных компонентах DB с тем, что выбираются все записи из SELECTа, а когда перешел на FIBplus, частично проблема решилась, т.к. они (FIBplus-ы) фетчат столько записей, сколько надо для отображения (высота DBGrid-а).
Может, это поможет...


Desdechado   (2002-08-21 17:10:00) [3]

вообще-то в IB6 и FB1 уже есть в синтаксисе SELECT такие фишки, правда, по-разному сделаны

а с генераторами изящно, но напряжно их заводить на каждого юзера, потом дропать, передергивать ...


Dimedrol   (2002-08-21 17:01:00) [4]

Да, на счет этого я уже догадался ;-)


Johnmen   (2002-08-21 16:11:00) [5]

...да, и еще надо побеспокоиться, чтобы каждый клиент юзал свой генератор...


Johnmen   (2002-08-21 16:07:00) [6]

По поводу лимитирования...
Лично я этого не делаю, предпочитаю все-таки делать такие запросы, которые заведомо не будут продолжительными...:)
Да и никакой сбой (именно сбой) не приведет к завалу...
:-)))


Dimedrol   (2002-08-21 15:56:00) [7]

;-)))
Изящно ! ;-)
Просто супер ! 8-)

К стати, а как тебе мои аргументы по поводу лимитирования запросов ?


Johnmen   (2002-08-21 15:45:00) [8]

Примерно так :
1. Создается генератор
...
2.Сбрасываем значение ген-ра перед запросом
SET GENERATOR <name> TO 0
3.SELECT ... FROM ... WHERE ... AND (GEN_ID(<name>,1)<=100)


Dimedrol   (2002-08-21 15:36:00) [9]

Да ?
А как ??

А зачем - я объясню.
Дело в том, что я стараюсь ВСЕ(!) запросы делать
лимитированные.
Т.к. если кто-то клиент или сервер "сбойнет" при
построении\проведении селекта, то я совсем не хочу
чтобы ко мне в клиента валились напр. 100 мегов результатов...

Например, если по моим расчетам, ко мне в результате запроса
должны прийти 30 записей, то я ставлю "LIMIT 100" -
это в том случае, если я ошибся, то клиент будет "спасен" от
завала данными.


Johnmen   (2002-08-21 14:43:00) [10]

Можно...Вот только нужно ли ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо