Поиск:

Ответ в темуСоздание новой темы Создание опроса
> первая запись в таблице 
:(
    Опции темы
gordmiand
Дата 6.12.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: -1
Всего: 0



В базе данных есть записи, в которых одно из полей - Name.
Как программно через SQL-запрос узнать значение поля Name в ПЕРВОЙ записи таблицы БД ?
PM MAIL   Вверх
Savek
Дата 6.12.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



В БД нет ни первой, ни второй никакой либо еще записи. Порядок определяется выборкой
PM MAIL   Вверх
ilyuha
Дата 8.12.2007, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



gordmiand, а что, в вашей БД нет автоинкрементного поля? было бы проще -
Код

SELECT Name FROM [таблица] WHERE ID=1


ЗЫ камнями прошу не кидать если что smile
PM MAIL   Вверх
Marduk
Дата 8.12.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 9.4.2007

Репутация: нет
Всего: 2



если нет идентификаторов у записи, то можно так:
Код

SELECT TOP 1 name From TableName

PM MAIL ICQ   Вверх
gordmiand
Дата 9.12.2007, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 15.4.2007

Репутация: -1
Всего: 0



1. А если запись с автоинкрементом=1 была удалена, то что?
2. Paradox пишет ошибку на Top 1, LIMIT 1 и т.п.

Добавлено через 5 минут и 54 секунды
и в InterBase на запрос

 SELECT TOP 1 kod_mag From Shops

ошибка Token unknown 1
PM MAIL   Вверх
ilyuha
Дата 9.12.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Цитата(gordmiand @ 9.12.2007,  01:15)
1. А если запись с автоинкрементом=1 была удалена, то что?

то можно делать перезаполнение этих полей после удаления каждой записи
PM MAIL   Вверх
Vas
Дата 9.12.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Насколько мне известно, если не использовать в запросе из одной таблицы сортировку, то записи выводятся в том порядке, в котором они были добавлены в БД. Соотвественно из запроса берем первую запись и все.
А так конечно все это неверно в корне, в реляционных БД нет понятия порядка записей, порядок достигается заданием определенных условий при выборе данных. Так что определяемся какому условию должна удовлетворять первая запись и выбираем, при автоинкременте никого не надо перенумеровывать, а просто сделать запрос:
Код

select name from table 
where id in (select min(id) from table)

Запрос не проверял, знаю что в оракле прокатит без проблем, а вот на парадоксе видимо будет парадокс smile 

Ilyuha, а если в таблице пару миллионов записей, что же будет если каждую перенумеровывать, да еще если на них ссылается куча таблиц, во каша будет после первого изменения id у записей  smile 


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
ilyuha
Дата 9.12.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Vas, согласен, это возможно в относительно простой бд с одной таблицей.... 
PM MAIL   Вверх
pseud
Дата 10.12.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Vas @  9.12.2007,  16:44 Найти цитируемый пост)
Запрос не проверял, знаю что в оракле прокатит без проблем, а вот на парадоксе видимо будет парадокс  


в парадоксе вложенный запрос тоже без проблем прокатит
так что юзаем
Код

select name from table 
where id in (select min(id) from table)



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Deniz
Дата 10.12.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



gordmiand, для FireBird
Код
select first 1 * from table



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.