Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.12.14;
Скачать: [xml.tar.bz2];

Вниз

Select * from - порядок полей   Найти похожие ветки 

 
Ega23 ©   (2008-05-20 12:19) [0]

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


 
Reindeer Moss Eater ©   (2008-05-20 12:43) [1]

а это так важно?
а если структура поменялась, а в датасете статик поля уже есть?


 
Ega23 ©   (2008-05-20 13:03) [2]


> а если структура поменялась


Как раз это и проверяю. Просто иначе в проверке лишний цикл получается. А так - чисто по Fields[i].


 
Reindeer Moss Eater ©   (2008-05-20 13:09) [3]

я про то, что могут быть статик филды от дизайнтайма.
количество имена и типы полей в структуре таблицы не поменялись, поменялись только их порядковые индексы.
Либо наеборот. в физической таблице вообще ничего не менялось, но мышкой потаскали поля в редакторе полей.

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


 
Ega23 ©   (2008-05-20 13:12) [4]


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


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

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


 
MsGuns ©   (2008-05-20 15:25) [5]

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

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


 
Anatoly Podgoretsky ©   (2008-05-20 15:31) [6]

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

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


 
Reindeer Moss Eater ©   (2008-05-20 15:45) [7]

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


 
MsGuns ©   (2008-05-20 16:20) [8]

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

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


 
Anatoly Podgoretsky ©   (2008-05-20 16:32) [9]

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

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


 
Anatoly Podgoretsky ©   (2008-05-20 16:33) [10]


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

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


 
Ega23 ©   (2008-05-20 16:36) [11]


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


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


 
Ega23 ©   (2008-05-20 16:38) [12]

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


 
Johnmen ©   (2008-05-20 16:53) [13]

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


 
Ega23 ©   (2008-05-20 16:57) [14]


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


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


 
Johnmen ©   (2008-05-20 17:01) [15]


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

Какой OrderBy??? :)


 
Reindeer Moss Eater ©   (2008-05-20 17:02) [16]

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

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


А что не так?


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

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

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


 
Reindeer Moss Eater ©   (2008-05-20 17:09) [18]

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


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


 
Ega23 ©   (2008-05-20 17:30) [19]


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


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


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


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


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


 
Reindeer Moss Eater ©   (2008-05-20 17:39) [21]

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

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


 
Ega23 ©   (2008-05-20 17:51) [22]


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


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


 
MsGuns ©   (2008-05-20 18:28) [23]

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

Все !

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

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


 
MsGuns ©   (2008-05-20 18:30) [24]

>Ega23 ©   (20.05.08 17:32) [20]
>Описатели филдов в системной таблице хранятся? Хранятся. При >составлении плана запроса оттуда выбираются? Выбираются. SQL при этом >используется? А вот Х его З. Но если SQL - то Order By должОн быть.

Хранятся в той последовательности, в которой они были перечислены в соответствующем Create Table.
Странно, правда ?


 
Reindeer Moss Eater ©   (2008-05-20 18:37) [25]

У вас кругозор просто узок, если сложно представить сущность имеющую 99 атрибутов.

PS как я уже сказал, 99 - просто число взятое с потолка. В моих таблицах нет такого количества полей.
А суть поста, которую вы до сих пор не догнали, была в том, что статик филдов может быть три, в то время как физических полей таблицы будет триста три. И будет звезда в селекте и никому кроме вас печали от этого не будет.

фетча на клиента трехсот трех полей не состоится.


 
MsGuns ©   (2008-05-20 18:43) [26]

>Reindeer Moss Eater ©   (20.05.08 18:37) [25]
>У вас кругозор просто узок, если сложно представить сущность имеющую >99 атрибутов.

Дадад, я вот уже три десятка лет только телефонные справочники проектирую.

>А суть поста, которую вы до сих пор не догнали, была в том, что статик филдов может быть три, в то время как физических полей таблицы будет триста три. И будет звезда в селекте и никому кроме вас печали от этого не будет.

Более того, я вообще не догоняю, что такое "статик" поля. Это те, которые автоматически создаются при открытии в делфях например TTable и которые затем отображаются в окне редакторов полей ? Так я открою страшную тайну - у меня практически не бывает "статик" полей в твоем понимании (а если и есть, то это не поля таблицы, а поля возвращамого ХП или вьюхи датасета - надеюсь, ты в состоянии "догнать" между ними разницу ?)

Что касается самого "криминала", т.е. "политкорректности" использования конструкции Select *, то однозначного ответа быть не может, хотя в целом я бы скорее поддержал Анатолия, чем возражал бы ему.


 
Reindeer Moss Eater ©   (2008-05-20 18:45) [27]

Более того, я вообще не догоняю, что такое "статик" поля.

Тогда может погодить с тем чтобы спорить с пеной у рта и стрелять инакомыслящих?
Пока не прояснится что такое статик поля в датасете.


 
Reindeer Moss Eater ©   (2008-05-20 18:48) [28]

Пример с паспортом и правами содержащими грамоты из пионерлагеря за первое место на стометровке - это в детский сад такие примеры.

Я говорю про сущности имеюшие атрибуты зависящие только от PK.
И нигде не сказано, что если мсганс не видел их больше двадцати, то их и нет на самом деле и в принципе не может быть.


 
sniknik ©   (2008-05-20 18:51) [29]

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


 
MsGuns ©   (2008-05-20 19:00) [30]

>Reindeer Moss Eater ©   (20.05.08 18:48) [28]
>Я говорю про сущности имеюшие атрибуты зависящие только от PK.

 Глупости ! Ты говоришь не о сущностях, а о ПРЕДСТАВЛЕНИИ СУЩНОСТЕЙ в клиентском приложении. А это вовсе не одно и то же.

>И нигде не сказано, что если мсганс не видел их больше двадцати, то их и >нет на самом деле и в принципе не может быть.

Ты, конечно, можешь всю информацию об предмете автоматизации запихнуть в одну таблицу с 10000 полями. Трудно, но можно. Ветер, как говорится, вдогонку.


 
Reindeer Moss Eater ©   (2008-05-20 19:13) [31]

Да неважно о чем я говорю и как это называется на самом деле.
Могут быть атрибюты и их может быть 99.

Могут быть другие случаи.

Те же грамоты из садика.
Если их много и они не участвуют в реляционных отношениях, то мудрый гудвин обязательно смастерит отдельную таблицу для "грамот из садика" во имя нормализации.
А действительно опытный разработчик вполне может хранить все их скопом в одном поле в той же таблице что и самого пионера.

первый во имя нормализации ничего кроме усложнения обработки данных  и лишних запросов не получит (плюс тормозов с этим связанных)
Второй ничего не потеряет.

впрочем мы отвлеклись.
конституция не ограничевает количество атрибутов у сущности и количество полей в таблице тоже.


 
Reindeer Moss Eater ©   (2008-05-20 19:18) [32]

Ты, конечно, можешь всю информацию об предмете автоматизации запихнуть в одну таблицу с 10000 полями. Трудно, но можно. Ветер, как говорится, вдогонку.

У кого такие психологические трудности с 10000 полями?
У меня их нет.
Так же как и с десятью таблицами по тысяче полей или сотней таблиц с сотней полей.


 
MsGuns ©   (2008-05-20 19:20) [33]

>А действительно опытный разработчик вполне может хранить все их скопом >в одном поле в той же таблице что и самого пионера.

Реально "грамотный" разработчик так делать в большинстве случаев не будет. Ибо знает, к чему это приведет.


 
Reindeer Moss Eater ©   (2008-05-20 19:20) [34]

И к чему же это приведет?


 
MsGuns ©   (2008-05-20 19:24) [35]

Напрмер, к потере 1-й степени нормализации - атомарности.
Хватит ?


 
Reindeer Moss Eater ©   (2008-05-20 20:29) [36]

И кому от этого худо?

Серверу, которого никто не будет лишний раз насиловать дополнительным запросом?

Разработчику? Который получает все "грамоты садика" одним запросом вместе с самим пионером и не организует циклы на клиенте после получения их списка с сервера?

Никому.


 
Reindeer Moss Eater ©   (2008-05-20 20:31) [37]

Я уже не говорю про случай, когда по условиям предметной области все эти многочисленные грамоты вообще логически являются атомарными. Все целиком вместе взятые.


 
MsGuns ©   (2008-05-20 20:44) [38]

"Я не буду с тобою спорить, старый софист" (c) ;)


 
Anatoly Podgoretsky ©   (2008-05-20 21:13) [39]

> Ega23  (20.05.2008 16:38:12)  [12]

А чего ни будь приличное использовать не хочешь, например OpenScheme


 
Anatoly Podgoretsky ©   (2008-05-20 21:20) [40]

> Ega23  (20.05.2008 17:32:20)  [20]

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



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

Форум: "Базы";
Текущий архив: 2008.12.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.007 c
2-1225629295
M
2008-11-02 15:34
2008.12.14
D6 + D7 на одной машине


2-1225459016
Alex_Ford
2008-10-31 16:16
2008.12.14
реестр


2-1225959856
Hmelmoi
2008-11-06 11:24
2008.12.14
Помогите решить задачу


15-1223633607
Kerk
2008-10-10 14:13
2008.12.14
Есть работа


15-1223466254
KSergey
2008-10-08 15:44
2008.12.14
Расскажите мне про Windows-домен





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский