Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2010, 13:06   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию Запрос на последние записи

пример. есть БД и в ней 100 записей нужно вывести последние 10. Как составить такой запрос?
SERG1980 вне форума Ответить с цитированием
Старый 17.11.2010, 14:11   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

От СУБД зависит. Если в запросах поддерживается LIMIT, то можно так
Код:
select * from <table> order by id desc limit 10
ID - ключевое поле (автоинкремент)
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.11.2010, 15:00   #3
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

вот только ТС не уточнил по какому критерию эти записи "последние"
soleil@mmc вне форума Ответить с цитированием
Старый 17.11.2010, 16:11   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
вот только ТС не уточнил по какому критерию эти записи "последние"
Как есть на данный момент в таблице, т.е. последние внесенные.

нашёл в справке по Access 2003 оператор TOP вот что получилось
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
...
 sql.Add('select top 10 * from streets');//возвращает первые 10 записей
 sql.Add('select top 10 * from streets ORDER BY S_ID desc;');//последние 10 записей
...
end;
Впринципе вопрос решён но если есть идеи буду рад посмотреть
SERGEYX к сожалению Access не знает оператор LIMIT

Последний раз редактировалось Stilet; 17.11.2010 в 17:26.
SERG1980 вне форума Ответить с цитированием
Старый 17.11.2010, 16:52   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а если праймари составной?
в любом случае нужно указывать сортировку - никакой аксесс не гарантирует правильность выборки без сортировки
soleil@mmc вне форума Ответить с цитированием
Старый 17.11.2010, 17:02   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
никакой аксесс не гарантирует правильность выборки без сортировки
Угу. Правльней будет так
Код:
 sql.Add('select top 10 * from streets ORDER BY S_ID');//возвращает первые 10 записей
 sql.Add('select top 10 * from streets ORDER BY S_ID desc;');//последние 10 записей
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на выборку случайной записи (Delphi, Access) s4shk4 Помощь студентам 22 09.11.2010 10:32
Вложенный запрос на удаление конкретной записи Droid БД в Delphi 1 03.08.2010 17:47
Вставка записи в таблицу БД через запрос Mrudda БД в Delphi 7 07.05.2010 22:09
Запрос на отсутсвующие записи. ginz БД в Delphi 4 09.02.2010 11:54
Запрос на добавление записи в Delphi disaer Помощь студентам 5 09.11.2009 12:07