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

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

Select * from - порядок полей [MSSQL, Postgres]


Страницы:   1 2 3 4

Ega23 ©   (2008-05-20 12:19:00) 

А вот такой вопрос: ежели я делаю Select * from Table, то в каком порядке мне будут возвращены поля?
Т.е. может ли произойти ситуация, что порядок колонок поменялся, а реально изменения в структуру БД не вносились?


MsGuns   (2008-05-20 18:28:00) [41]

>Reindeer Moss Eater ©   (20.05.08 17:02) [16]
>А что не так?

Все !

Представьте себе водительские права, в которых кроме ФИО, фотки и т.д., находится еще подробная биография, пионерские грамоты за учебу в школе, аттестат зрелости, медкарты с флюорокарточками, характеристики со всех мест, где работал и т.д.
Когда мне рассказывают о таблицах на 255 полей, я так и представляю себе веселую картинку, когда на требования гаишника предъявить права, водитель вытаскивает из багажника пару-тройку чемоданов с "данными".
Сколько работаю с базами, подобвых монстеров видел всего несколько раз и все они так или иначе родились от "гениальных" озарений их разработчиков запихивать ОДНОТИПНЫЕ данные в РАЗНЫЕ поля таблицы. Как пример, весьма часто встречающееся уродство из студпроектов, в которых все предметы, по которым есть оценки, запихиваются в одну запись с полями "Техмех", "Вышка", "Функанализ" и т.д. Ессно, для каждого курса (факультета, потока) свои "таблицы".
Вот учителей, которые учат ТАК делать, я б и поубивал. Насмерть !

И, наконец, одна аксиома - любой сервер прежде всего "точится" на оптимизацию поиска среди множества ЗАПИСЕЙ, но не ПОЛЕЙ !


Ega23   (2008-05-20 17:51:00) [42]


> FieldDefs.Update приводит к чтению метаданных с сервера
> и заполняет массив филддевсов экземплярами филддефов для
> каждого поля
> с именами, типами явками и паролями.
> данные при этом не фетчатся.


Ну, чай не совсем дурак, справку читать умею, да и в код слазил.  :)


Reindeer Moss Eater   (2008-05-20 17:39:00) [43]

Гм... Пока не въехал, но чуть позже поэкспериментирую...

FieldDefs.Update приводит к чтению метаданных с сервера и заполняет массив филддевсов экземплярами филддефов для каждого поля
с именами, типами явками и паролями.
данные при этом не фетчатся.


Ega23   (2008-05-20 17:32:00) [44]


> Какой OrderBy??? :)


Такой. Описатели филдов в системной таблице хранятся? Хранятся. При составлении плана запроса оттуда выбираются? Выбираются. SQL при этом используется? А вот Х его З. Но если SQL - то Order By должОн быть.


Ega23   (2008-05-20 17:30:00) [45]


> Ой бааалиииин...
> select * from table без всяких where
> +
> FieldDefs.Update


Гм... Пока не въехал, но чуть позже поэкспериментирую...


Reindeer Moss Eater   (2008-05-20 17:09:00) [46]

Мне нужно информацию по филдам получить, а не данные.
Соответственно, запрос будет выглядеть Select * from Table where 0=1


Ой бааалиииин...
select * from table без всяких where
+
FieldDefs.Update


Reindeer Moss Eater   (2008-05-20 17:03:00) [47]

Кроме того, имелось ввиду совершенно иное, что вы не уловили.
физических полей N, филдов в датасете N.
N < M.

Используется звезда в запросе.
"Ну и чо"?


Reindeer Moss Eater   (2008-05-20 17:02:00) [48]

>99 полей в таблице

Вот за это уродство точно стрелять !


А что не так?


Johnmen   (2008-05-20 17:01:00) [49]


> Ega23 ©   (20.05.08 16:57) [14]
>  Просто крайне интересно, по какому полю идёт OrderBy ?

Какой OrderBy??? :)


Ega23   (2008-05-20 16:57:00) [50]


> Думается, будут идти в том порядке, в котором описаны в
> системной таблице.


В общем, я тоже так думаю. Просто крайне интересно, по какому полю идёт OrderBy ?


Johnmen   (2008-05-20 16:53:00) [51]

Думается, будут идти в том порядке, в котором описаны в системной таблице.


Ega23   (2008-05-20 16:38:00) [52]

Т.е. я пустой НД получаю, но со структурой филдов и их типами. А дальше проверяю - так или не так.


Ega23   (2008-05-20 16:36:00) [53]


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


Мне нужно информацию по филдам получить, а не данные.
Соответственно, запрос будет выглядеть Select * from Table where 0=1


Anatoly Podgoretsky   (2008-05-20 16:33:00) [54]


> Вот за это уродство точно стрелять !

А я хотел только уволить, вот помните мою доброту.


Anatoly Podgoretsky   (2008-05-20 16:32:00) [55]

> Reindeer Moss Eater  (20.05.2008 15:45:07)  [7]

Ну можно и не прямо, это же поговорка. Ну и что, что 99 полей, а кому сейчас легко? Хочешь что бы и серверу было плохо.
Для этого существуют псевдонаучные методы, называются Научная организация труда.
Ну нельзя так писать, звездочку можно использовать в отладке и только, иначе серверу хорошо не будет, звездочка заставляет каждый запрос анализировать с нуля, все планы побоку.


MsGuns   (2008-05-20 16:20:00) [56]

>Reindeer Moss Eater ©   (20.05.08 15:45) [7]
>99 полей в таблице

Вот за это уродство точно стрелять !


Reindeer Moss Eater   (2008-05-20 15:45:00) [57]

прямо так и увольнять.
99 полей в таблице и 3 поля созданных в редакторе полей в дизайне или явно на рантайме.
кому от этого будет плохо?


Anatoly Podgoretsky   (2008-05-20 15:31:00) [58]

> Ega23  (20.05.2008 12:19:00)  [0]

Не надо работать с предположениями, за конструкцию * надо увольнять. Поля должны быть явно перечислены и столько, сколько нужно.


MsGuns   (2008-05-20 15:25:00) [59]

>Ega23 ©   (20.05.08 13:12) [4]
>Хотя, щас подумал, без них один фиг не обойтись.

Однако обойтись. Если строить объектную модель БД


Ega23   (2008-05-20 13:12:00) [60]


> лучше всего получать их по именам, а не по индексам.


Да это понятно. Просто не хочется в описательную структуру имена вносить...
Хотя, щас подумал, без них один фиг не обойтись.

Ладно, вопрос снят.


Страницы:   1 2 3 4

Наверх

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