Форум: "Базы";
Текущий архив: 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