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

Вниз

n первых записей   Найти похожие ветки 

 
Narayan ©   (2004-05-03 04:30) [0]

Как выбрать n первых записей в IB.
И можно ли это дело оформить как представление ?


 
Кщд   (2004-05-03 10:37) [1]

в FB - select first n
в IB - посредством манипуляций с where


 
narayan ©   (2004-05-03 10:39) [2]

2 Кщд   (03.05.04 10:37) [1]

можно по подробнее про манипуляции


 
Кщд   (2004-05-03 10:44) [3]

1. если можно получить ровно 10 записей, сформулировав соответствующее условия в where, то  почему бы этого не сделать? :)
2. ещё вариант - хранимая процедура


 
narayan ©   (2004-05-03 11:44) [4]

2 Кщд   (03.05.04 10:44) [3]

кусочек кода всегда лучше длинных объяснений


 
ss300 ©   (2004-05-03 12:33) [5]

2 narayan

1) добавь в таблице дополнительное поле id
2) напиши триггер, типа автоинкремента для поля id
3) select * from table where id<20;


 
narayan ©   (2004-05-03 12:57) [6]

2 ss300 ©   (03.05.04 12:33) [5]

это чушь


 
Кщд   (2004-05-03 15:33) [7]

narayan ©  (03.05.04 12:57) [6]
не грубите и не грубимы будете

narayan ©  (03.05.04 11:44) [4]
не знаете for select - в доку
знаете - в чем вопрос?


 
narayan ©   (2004-05-03 15:39) [8]

2 Кщд

1. если можно получить ровно 10 записей, сформулировав соответствующее условия в where, то  почему бы этого не сделать? :)

А всё таки, как надо "сформулировать соответствующее условия в where" что бы "получить ровно 10 записей" ??


 
Anatoly Podgoretsky ©   (2004-05-03 15:47) [9]

narayan ©   (03.05.04 15:39) [8]
Очень просто, для этого надо иметь пронумерованое без дырок поле и использовать в выборке предикат between


 
служивый   (2004-05-03 15:56) [10]

>>Как выбрать n первых записей в IB.
rows n


 
Johnmen ©   (2004-05-03 16:35) [11]

>служивый  (03.05.04 15:56) [10]

Служи дальше. Для тебя дембель ещё далеко...
:)


 
kaif ©   (2004-05-03 20:34) [12]

Универсальное для любого IB решение:

Предположим имеется таблица mytable

create table mytable(id integer, name varchar(50),
 constraint pk_mytable primary key(id));

создаеся хранимая процедура:

create procedure mytable_first_n_select(n integer)
returns(id integer, name varchar(50))
as
begin
 for select id, name from mytable
 order by id
 into :id, :name
 do
 begin
   if n = 0 then
     exit;
   else
     suspend;
   n = n - 1;
 end
end

Далее делается запрос

select from mytable_first_n_select(10)

Получаешь 10 "первых" записей. Если первыми 10 записями называть первые 10 в наборе, упорядоченном по id.

А зачем это нужно? Если опишете задачу, может быть найдем другие решения. Например, перейти на Firebird и использовать его опцию в select, позволяющую решать эту задачу. Или может проще выбрать все записи, а фетчить только первые N. Это тоже неплохое решение в некоторых случаях. А может быть вообще этот путь неверный. Все от задачи зависит...


 
kaif ©   (2004-05-03 20:36) [13]

Пардон, в таблице: id integer not null.
И в запросе забыл поля указать:
select * from mytable_first_n_select(10)


 
narayan ©   (2004-05-03 23:01) [14]

2 kaif

Другое решение не требуется.
Нужно это для http://delphimaster.net/view/3-1083330901/
А так, вообще-то всё это пока под yaffil.

На счёт процедуры - это первое что мне пришло в голову, но я расчитывал что есть стандортные средства.
Поскольку это место в не критичное, можно в принципе, и в программе ограничить кол-во записей.

Ладно. Нет так нет. Всё равно, спасибо.


 
kaif ©   (2004-05-04 14:52) [15]

select first 10 * from mytable
в Yaffil-е работает. Я только что проверил.


 
служивый   (2004-05-08 18:09) [16]

>Johnmen ©   (03.05.04 16:35) [11]
>Служи дальше. Для тебя дембель ещё далеко...:)
Прошу извинить уважаемый,но на IB 6.5
select * from table rows 10
дает тот результат о котором спрашивал автор
а дембель это хорошо :))



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

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

Наверх




Память: 0.5 MB
Время: 0.043 c
1-1083835933
UnDISCOvery
2004-05-06 13:32
2004.05.30
Сравнение Delphi 5 и Delphi 7


8-1079904163
dance
2004-03-22 00:22
2004.05.30
gif


3-1083421788
Mishenka
2004-05-01 18:29
2004.05.30
Данные в таблицах.


3-1084251518
Vovovanych
2004-05-11 08:58
2004.05.30
Обновлении данных в многопользовательских программах


3-1084320050
AleKo
2004-05-12 04:00
2004.05.30
Блокировка записей в ADO