![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Select * from - порядок полей [MSSQL, Postgres]
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]
> лучше всего получать их по именам, а не по индексам.
Да это понятно. Просто не хочется в описательную структуру имена вносить...
Хотя, щас подумал, без них один фиг не обойтись.
Ладно, вопрос снят.