|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Может быть и весь стандарт. Потмоу что Language Reference это в том числе и БЕСПЛАТНОЕ изложение части стандарта, который сам по себе стоит больших денег. И изложение на нормальном понятном языке, а не на языке аннунаков. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:43 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch> Иногда лучше жевать, чем.... > ...чем торопиться, скажем вежливо. > rdb_dev > Если, к примеру, подобный запрос внутри FOR возвращает строки Виноват, не ты один такой болезный... Хотя даже он про For сказал после тоих "циклов". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:43 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch> Может быть и весь стандарт. Предлагаю проголусувать. Чё мелочиться-то... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:44 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамАналогичные куски текста есть, например, в описании ES и если вы не пользуетесь копипастом (ручным или профессиональным в соотв. ПО) - то делаете что-то не так. а на ES какая лицензия, кому копирайт принадлежит ? Copyright 1999 Inprise/Borland. All rights reserved. All InterBase products are trademarks or registered trademarks of Inprise/Borland. All Borland products are trademarks or registered trademarks of Inprise/Borland. Other brand and product names are trademarks or registered trademarks of their respective holders. 1INT0055WW21000 6E1R0699 раз копипаст, два копипаст - и как бы за распространение вареза не штрафанули, Эмбаркадере деньги сейчас нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:50 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
AriochПотмоу что Language Reference это в том числе и БЕСПЛАТНОЕ изложение части стандарта, чушь. Совпадение со стандартом будет только в том случае, если так ведёт себя Firebird. Если поведение отличается от стандартного, то оно будет описано. И никто SQL стандарт туда тащить не будет. И ещё между присвоением и into есть огромная разница. Как это может быть не очевидно я не понимаю. Нельзя выполнить присвоение переменной, не изменив её ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:53 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch> а на ES какая лицензия, кому копирайт принадлежит ? ES - это execute statement. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:58 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Симонов ДенисНельзя выполнить присвоение переменной, не изменив её Написали бы в стандарте, что "переменной присваивается ее текущее начение" - и присваивали не изменив бы как миленькие. А если бы в стандарте про SELECT INTO написали, что присваивается NULL, то и там бы присваивали, а не пропускали. Путать очевидное всем и привычное лично тебе, увы свойственно всем людям. Даже когда к тебе лично приходят люди, которым не очевидно, все равно прощё их записать в недочеловеки и остаться при своём. И получить удовольствие послав пользователей через губу идти покупать стандарты. Всё, надоело. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:58 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Симонов Денис> И никто SQL стандарт туда тащить не будет. Ну всё, не судьба. Даже проголусувать не надо (а мне было интересно на результаты посмотреть). > Как это может быть не очевидно я не понимаю. Как выяснилось, даже Дима путается. Хотя к чему сюда скалярный вариант вообще приплели непонятно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 19:59 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Arioch> и присваивали не изменив бы как миленькие. Не факт. И это имело бы другие сопутствующие... "нюансы", которые нужно было бы знать, и, вероятно, описывать в доке. > прощё их записать в недочеловеки и остаться при своём. > И получить удовольствие послав пользователей через губу Уймись уже, подобной фигнёй тут только ты страдаешь. ТС спросил, ему первым постом объяснили "почему", вторым постом объяснили "как". А потом пришёл ты поручик Ржевский и тут такооооое началось... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 20:05 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, да Дима просто не пользуется таким присвоением. Я тоже, хотя знаю, что так можно ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 20:17 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Дык и я не пользуюсь (не столько потому что не нравится, сколько потому что одинарный скаляр редко нужен бывает, чаще строковый скаляр). Перепутал, бывает. Это из разряда случаев, когда люди gen_id и контекстные переменные напрямую не умеют вызывать. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 20:28 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
AriochЕсли результата нету - то присваивается NULL В одном из случаев. значит, null при i=(select ....) - это баг. Никогда так не писал, поэтому не сталкивался. Рустаму, про "правильно" - null это все равно результат. А если результата нет, значит и присваивать нечего. Если непонятно, поясняю: i=(select field from table); означает "записать в переменную I значение столбца field из выбранной записи". Вообще для select результатом является набор записей (множество). Если множество пустое, как можно что-то записывать в i ? Столбца field в данном случае вообще не существует. Теоретически это могло бы быть темой для дискуссии. Но поскольку я не вижу здесь смысловой разницы между i=(select) и select into :i - считаю что и работать они должны одинаково, т.е. ничего не менять в переменной, если rowset is empty. А по существу - надо посмотреть, как эти конструкции выглядят в blr, и в чем там разница. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 20:57 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Симонов ДенисНельзя выполнить присвоение переменной, не изменив еe тоже логично. Но в случае отсутсвия rowset вся конструкция i=(select); превращается в i=; и все. Должна-ли такая конструкция работать эквивалентно явному i=null; ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 21:01 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdvв случае отсутсвия rowsetесть чёткое правило в стандарте, выше приводилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 21:02 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамНу всё, не судьба. Даже проголусувать не надо (а мне было интересно на результаты посмотреть). тут хоть обголосуйся, но написание документации - работа платная. Так что пока ее бесплатно писать никто не хочет или не умеет, голосуйте хоть за втыкание трех стандартов в документацию, результат будет одинаков - шиш с маслом. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 21:03 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
hvladесть чёткое правило в стандарте, выше приводилось. тогда я не знаю, что еще обсуждать. А то все такие говорливые стали, прямо прорвало. В документации будет дополнено? Будет. Вот и славно (трам-пам-пам). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 21:05 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdv> Рустаму, про "правильно" - null это все равно результат. kdv> А если результата нет, значит и присваивать нечего. Даже если забыть про стандарт, то отсутствие результата - тоже результат и странно хотеть оператор присваивания, который ничего не присваивает и не выдаёт ошибку. > Вообще для select результатом является набор записей (множество). > Если множество пустое, как можно что-то записывать в i ? Не для скалярного. Для скалярного чётко расписано, что делать в случае 0, что в случае 1 и что в случае > 1. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 21:08 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdv> тут хоть обголосуйся Не-не, мне таки интересно было бы на голосующих посмотреть. В список занести. (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 21:10 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
kdvWildSeryВ русской документации ошибка перевода. В доке ясно написано какого, нафиг, перевода? русский LR первичен, английский - перевод с русского.Тот случай, когда перевод лучше оригинала? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2018, 23:38 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Ariochkdvя не вижу разницы в этих способах. Нет результата - ничего не присваивается. Есть результат - присваивается. А стандарт - видит. И сам firebird тожt видит Если результата нету - то присваивается NULL В одном из случаев. И если даже ты не можешь навскидку вспомнить правильное по стандарту поведение, странно это ожидать от чайников. Ты закусывай иногда. Хотя бы в одном из случаев. Положить в переменную что достал, не достал, не лОжь зеркальце в парту (С) - это стандарт и это логично, а присвоить переменной что-то, неважно откуда взявшееся - это к SQL имеет весьма слабое отношение. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 00:40 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамArioch> Может быть и весь стандарт. Предлагаю проголусувать. Чё мелочиться-то... Ну. И на место Трампа выбрать этого... как его... А! Родченкова, вот! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 00:42 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
Добавлю свои 5 копеек. То, что конструкция SELECT INTO не меняет значение переменных при пустом наборе - в принципе логично. Но не очевидно для человека. У нас все разработчики обязательно наступали на этот нюанс. Я и сейчас второпях иногда забываю про то, что при переделке кода с "A = (SELECT FROM XXX)" на "SELECT FROM XXX INTO :A, :B" переменные надо заранее обнулить. Поэтому отразить в доке такое поведение считаю правильным. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 02:29 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
CyberMaxSELECT INTO не меняет значение переменных при пустом наборе - в принципе логично. Но не очевидноА что, если б меняла - было бы очевиднее? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 03:23 |
|
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
|
|||
---|---|---|---|
#18+
CyberMax, Я бы даже попросил дополнительный предикат к into (типа reset). Чтобы обнулять в случае отсутствия результатов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2018, 03:34 |
|
|
start [/forum/topic.php?fid=40&msg=39594419&tid=1561254]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 306ms |
total: | 447ms |
0 / 0 |