Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.14;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.017 c
2-1225956792
pushkin42
2008-11-06 10:33
2008.12.14
Активация предыдущего окна


15-1223750694
Desdechado
2008-10-11 22:44
2008.12.14
Забавное условие в лицензионном соглашении на программу


2-1225372647
Agent89
2008-10-30 16:17
2008.12.14
чтение LTP порта


1-1203533784
multiflex
2008-02-20 21:56
2008.12.14
Странная проблема с буфером обмена


2-1226044326
alex_3
2008-11-07 10:52
2008.12.14
onresize, etc