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

Вниз

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

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

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

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


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

> MsGuns  (20.05.2008 18:30:24)  [24]

Я бы не стал на это закладываться, это сугубо внутреннее дело сервера, как хранить и как выдавать, если ему это явно не сказано.


 
MsGuns ©   (2008-05-20 21:37) [42]

>Anatoly Podgoretsky ©   (20.05.08 21:21) [41]

Анатолий, ни я, ни 99% пользователей скл-серверов не скажут, ГДЕ именно он хранит описания полей, да и вообще все свои метаданные. Да и не надо нам это. Известно лишь, что в системных таблицах. А вот как (в каком порядке) он их ПРЕДСТАВЛЯЕТ по требованию клиента (в частности по указанному сникником запросу) - это уже мы могем и проверить ;)


 
Anatoly Podgoretsky ©   (2008-05-20 22:44) [43]

> MsGuns  (20.05.2008 21:37:42)  [42]

Можем, ну и что?
Напомнить точно такие же речи, про значение переменной цикла по его окончания, тоже проверяли.
Это внутреннее дело сервера и совсем не обязательно, что другая редакция сервера будет работать точно также.


 
Ega23 ©   (2008-05-21 10:16) [44]


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


Может и хочу. Я пока ещё не определился. Эта работа следующим этапом будет, я сейчас "почву зондирую"...


 
Anatoly Podgoretsky ©   (2008-05-21 10:25) [45]

> Ega23  (21.05.2008 10:16:44)  [44]

Вопрос не полностью освещен, но OpenScheme это минимальный деноминатор (костыль в АДО), а правильно использовать INFORMATION_SCHEME - это и по стандарту и не зависит от технологий, и возможности пошире. Это полные метаданные по всей базе и работать с ними просто, без отличия от обычной работы, просто SELECT


 
ANB   (2008-05-21 11:37) [46]

Насчет использования * и расстрела.

declare
 R_Table1 Table1%rowtype;
begin
 select * into R_Table1 from Table1 where ID = p_ID;
 ...
 Дальнейшее использование записи из таблицы Table1
 ...
end;

Разве тут * - не самое уместное решение ?


 
Игорь Шевченко ©   (2008-05-21 13:01) [47]


> Разве тут * - не самое уместное решение ?


дурное дело нехитрое


 
ANB   (2008-05-21 14:31) [48]


> дурное дело нехитрое

Предложи недурной вариант.


 
Игорь Шевченко ©   (2008-05-21 22:26) [49]

ANB   (21.05.08 14:31) [48]


>
> Предложи недурной вариант.


Не могу - не знаю задачи.

Видел много разных вариантов, когда для того, чтобы достать значение одного поля, объявляли конструкцию [46], при этом вместо таблицы использовалось view с соединением 6 таблиц. Разработчик поступил, "как ему проще" - есть готовое view, значит его надо использовать. А то, что выполняться это будет на порядок дольше - ну и фиг с ним.
Я всегда, видя select * практически в любой интерпретации, будь то в серверной части, будь то в клиентской, хватаюсь за пистолет.


 
palva ©   (2008-05-21 23:39) [50]


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

Это не доброта, это попытка нанести ущерб конкурирующей фирме.


 
Petr V. Abramov ©   (2008-05-22 00:29) [51]


> Игорь Шевченко ©   (21.05.08 22:26) [49]


> хватаюсь за пистолет.

спили мушку :)))
в ситуации, когда 99 полей, и  из них нужно 98, самое оно.
но такое бывает редко.
так что в принципе согласен.
но все же мушку в данном вопросе на всякий случай лучше спилить :)))


 
Германн ©   (2008-05-22 01:07) [52]


> Игорь Шевченко ©   (21.05.08 22:26) [49]

> хватаюсь за пистолет.

Хм. Игорь, это высказывание дурно попахивает некоей цитатой периода второй половины 30-х годов прошлого века!
:)


 
Anatoly Podgoretsky ©   (2008-05-22 07:43) [53]

> Petr V. Abramov  (22.05.2008 00:29:51)  [51]

Это просто оправдание лени.


 
ANB   (2008-05-22 11:50) [54]


> Игорь Шевченко ©   (21.05.08 22:26) [49]

Даже если надо достать только 20 полей записи, такое написание уже сильно сокращает код - нужна только одна переменная.
При этом частенько заранее неизвестно, сколько точно полей тебе понадобится.

Писать правильно - значит писать быстро и наоборот.


> при этом вместо таблицы использовалось view с соединением
> 6 таблиц

Ты же сам ратовал за использование вьюх и FGA


 
ANB   (2008-05-22 11:51) [55]


> Это просто оправдание лени.

Хороший программист - ленивый программист. :)


 
Ega23 ©   (2008-05-22 12:19) [56]

Тут вот какое дело: как говорил выше, делаю проверку структуры БД на соответствие релизу.
Соответственно, может сложиться такая ситуация, что в предыдущем релизе в таблице было 10 полей, а в новом - 8 (2 поля тупо были удалены). Если я буду проверять наличие конкретных 8 полей, то всё сработает "на ура" - эти поля есть, типы данных совпадают и т.п.
А вот если Select * from, то тогда я ещё и "лишние" поля получу (и буду знать, что их надо грохнуть).

Это как пример

З.Ы. Я прекрасно понимаю, что "можно все сделать по-другому". Например задать в условиях проверки удаленные столбцы с предыдущего релиза. Или через схему.
Я тупо пример привёл.


 
Игорь Шевченко ©   (2008-05-22 12:24) [57]

ANB   (22.05.08 11:50) [54]


> Даже если надо достать только 20 полей записи, такое написание
> уже сильно сокращает код


Ну я же говорю - рука тянется к пистолету. Сокращение кода не есть самоцель.


> Писать правильно - значит писать быстро и наоборот.


Почему я работаю и моя работа оценивается - потому что остальные в нашей области "пишут быстро".


> Ты же сам ратовал за использование вьюх и FGA


"Всякий овощ приносит пользу, будучи употреблен надлежащим образом в надлежащее время".

В первую очередь я ратую за неизобретение велосипедов с четырьмя квадратным колесами - они, если и едут, то очень медленно, и сидеть на них во время езды больно.


 
Игорь Шевченко ©   (2008-05-22 12:26) [58]

Ega23 ©   (22.05.08 12:19) [56]


> Тут вот какое дело: как говорил выше, делаю проверку структуры
> БД на соответствие релизу.


Версию структуры базы данных хранить и проверять религия не позволяет ?


 
Ega23 ©   (2008-05-22 12:29) [59]


> Версию структуры базы данных хранить и проверять религия
> не позволяет ?


Позволяет, это первое было, что я предложил. Но вот начальство говорит, что этого недостаточно (и, в общем-то, аргументировано говорит).


 
ANB   (2008-05-22 12:45) [60]


> Но вот начальство говорит, что этого недостаточно (и, в
> общем-то, аргументировано говорит).

Правильно говорит. Но :
В любом случае намного надежнее прогулятся по словарю. Все достаточно тривиально как в оракле, так и в мс скл. Одна проблема - где хранить эталлонную структуру. Но это уже рабочий вопрос.


 
Игорь Шевченко ©   (2008-05-22 13:05) [61]

Ega23 ©   (22.05.08 12:29) [59]

А какие аргументы приводит начальство ? А то мы как-то справляемся версией, хотя изменения в структуре тоже наличествуют...


 
ANB   (2008-05-22 14:42) [62]


> А то мы как-то справляемся версией, хотя изменения в структуре
> тоже наличествуют...

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


 
Игорь Шевченко ©   (2008-05-22 14:59) [63]

ANB   (22.05.08 14:42) [62]

"Кривое не может сделаться прямым".  (Еккл. 1, 16)

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



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

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

Наверх





Память: 0.58 MB
Время: 0.052 c
15-1223383650
boriskb
2008-10-07 16:47
2008.12.14
ОДКБ


2-1225990509
cruiser
2008-11-06 19:55
2008.12.14
MessageDlg и иконки


2-1225962324
Zhekson
2008-11-06 12:05
2008.12.14
Можно ли реализовать ловушку на изменение переменной???


15-1223431631
Slider007
2008-10-08 06:07
2008.12.14
С днем рождения ! 8 октября 2008 среда


15-1223727726
{RASkov}
2008-10-11 16:22
2008.12.14
Контроль над "некоторым" каталогом, как это делается?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский