powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
86 сообщений из 86, показаны все 4 страниц
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593638
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Ожидаемый результат
Код: sql
1.
2.
3.
4.
5.
create or alter procedure "_TEST_PROC" returns ( RESULT integer ) as
begin
  --RESULT = 0;
  select NULL from RDB$DATABASE where FALSE into :RESULT;
end


RESULT =

2. Неожиданный результат
Код: sql
1.
2.
3.
4.
5.
create or alter procedure "_TEST_PROC" returns ( RESULT integer ) as
begin
  RESULT = 0;
  select NULL from RDB$DATABASE where FALSE into :RESULT;
end


RESULT = 0

3. Проверка - ожидаемый результат
Код: sql
1.
2.
3.
4.
5.
create or alter procedure "_TEST_PROC" returns ( RESULT integer ) as
begin
  RESULT = 0;
  select NULL from RDB$DATABASE where TRUE into :RESULT;
end


RESULT =

Непонятна ситуация 2: если select into вернул пустой набор данных, переменная, указанная в into , вообще "не трогается", в ней остается прежнее значение. Определенную логику в таком поведении увидеть можно, однако интуитивно по синтаксису ожидается, что после выполнения оператора значение переменной обновится. Как в операторе присваивания: странно было бы написать RESULT=xxx() и остаться при старом значении, потому что xxx ничего не вернул. Как тогда узнать, вернул или не вернул? Не вернул, и мы видим старое значение, или вернул, и мы имеем новое значение, случайно совпадающее со старым?

Так вот вопрос: такое поведение - это стандарт SQL, особенность Firebird или ошибка?

Firebird 3.0
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593648
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

Если запрос не вернул данных, то соответственно и в переменную ничего не записалось. Ошибки нет.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593655
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyanskyКак тогда узнать, вернул или не вернул? Не вернул, и мы видим старое значение, или вернул, и мы имеем новое значение, случайно совпадающее со старым?Узнать можно с помощью конструкции
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
  ...
into
  :RESULT;

if (row_count = 0) then
  -- данных нет
else
  -- данные есть
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593714
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky, где SUSPEND потерял?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593749
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky 2. Неожиданный результат
create or alter procedure "_TEST_PROC" returns ( RESULT integer ) as
begin
RESULT = 0;
select NULL from RDB$DATABASE where FALSE into :RESULT;
end

Ничего неожиданного. Селект не выполняется, а значит и переменная не перезаписывается.
Так понятнее?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593752
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devshalamyansky, где SUSPEND потерял?он и не планировался
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593954
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я кстати согласен, что момент не очевидный. И желательно его явно в документации прописать.

Одно дело "for select" - цикл он и есть цикл, внутри себя на каждый из 0,1,2,3,.... шагов ставит свои значения переменных. Нет лданных - цикл просто не выполнится.

А когда без цикла, то это интуитивно очень похоже на "VarName = (select .....)"

Получаются два возможных поведения, и они ОБА по своему логичны. Можно только зазубрить какая из логик выполняется. Но если "в первый раз" - то твердойпочвы нет, чтобы сказать "так и только так может быть".

PS. что впрочем не мешает за пару минут взять и проверить

PPS. https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-dml-select.html#fblangref25-dml-select-into

"in PSQL if it returns at most one row, i.e., if it is a singleton select."

насколько понимаю, синглтон - это не когад "at most", а когда ровно один объект (одна строка)
IF SINGULAR( SELECT .... ) на пустом селекте будут FALSE

В любом случае, в документации не описано, как будет себя вести SELECT INTO на пустмо запросе.
Кроме того, в разделе про PSQL нет ни слова про SELECT ... INTO, хотя бы даже просто пары слов, что в PSQL режиме у операторов таких-то появляются такие-то новые возможности, о которых можно прочитать в разделе про DML. Хотя лично я бы вообще документацию про INTO-блок целиком перенес в PSQL раздел, а в DML-разделе оставил бы только упоминание о ней, чтобы было видно в каком месте этот блок вставляется. Но это уже вкусовщина
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593971
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochИ желательно его явно в документации прописать.
...
В любом случае, в документации не описано, как ...
Кто-то конкретный должен для тебя это сделать? Представь свою версию документации, мы проголосуем и может вставим в общую.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593975
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch, по моему, поведение вполне очевидно и логично. Если, к примеру, подобный запрос внутри FOR возвращает строки, то FOR выполняет DO, если не возвращает - не выполняет. Так и здесь! Есть строка - помещаем результат в переменные, перечисленные в INTO, нет строки - не помещаем (нечего помещать).
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593982
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devArioch, по моему, поведение вполне очевидно и логично

Поведение привычно.
Иногда привычно и очевидно путают.
Для нового человека тут два варианта одинаково очевидных поведений.


rdb_devЕсли, к примеру, подобный запрос внутри FOR возвращает строки

А "если к примеру, подобный запрос внутри скобок VarName=(select...) возвращает" ноль строк, что тогда ?

Этот пример гораздо ближе к вопросу, чем цикл, которого в вопросе не было.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593988
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

да можете вообще баг-трекер закрыть и принимать только готовые патчи с исправлениями, и ни на каплю меньше.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39593992
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и в оракле и в мсскл всё точно так же.
обсуждать нечего.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594005
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devArioch, по моему, поведение вполне очевидно и логично...

Если люди путаются, ожидая другого поведения, значит ты неправ. Не очевидно, то есть.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594006
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийи в оракле и в мсскл всё точно так же.
обсуждать нечего.

Иногда люди в FB не с оракла или мсскл приходят, а с улицы.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594020
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

Можно форум закрыть, и в полярную экспедицию отправиться.

N.B. Кстати, в документации к Postgre, там, где into не табличный, явно написано, что into :var присваивает null, если выборка пустая.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594024
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У кого стандарт SQL под рукой есть? Там в SELECT INTO что-то сказано по поводу пустых запросов?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594026
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31.01.2018 14:34, чччД пишет:
> Иногда люди в FB не с оракла или мсскл приходят, а с улицы

иногда и сантехники "работают" гинекологами
https://ria.ru/society/20180119/1512870383.html
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594030
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31.01.2018 14:42, WildSery пишет:
> в документации к Postgre, там, где into не табличный, явно написано, что *into :var* присваивает null, если выборка пустая.

у них документация к параллельной реальности.
(не всегда соответствует реалиям)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594036
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийи в оракле и в мсскл всё точно так же.Oracle кидает исключение, насколько я помню
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594044
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31.01.2018 14:53, hvlad пишет:
> Oracle кидает исключение, насколько я помню

NO_DATA_FOUND
но результат от этого всё одно не меняется.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594072
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В документации фраза есть:

Стр. 295Простой оператор SELECT может быть использован в PSQL, только если он возвращает
единственную строку, то есть, если это запрос типа синглтон (singleton).

Может, исправить на:

Простой оператор SELECT может быть использован в PSQL, только если он возвращает не более одной строки.
В случае, когда запрос не возвращает данных (ноль строк), значение переменных <variable-list> в списке INTO <variable-list> не изменяется.

?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594091
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий31.01.2018 14:53, hvlad пишет:
> Oracle кидает исключение, насколько я помню

NO_DATA_FOUND
но результат от этого всё одно не меняется.Есс-но. Я просто уточнил фразу про "всё точно так же" :)
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594101
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДМожет, исправить на:В русской документации ошибка перевода.
В доке ясно написано "A “plain” SELECT statement can only be used in PSQL if it returns at most one row, i.e., if it is a singleton select."
"Не более одной строки".
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594113
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryчччДМожет, исправить на:В русской документации ошибка перевода.
В доке ясно написано "A “plain” SELECT statement can only be used in PSQL if it returns at most one row, i.e., if it is a singleton select."
"Не более одной строки".

Тем более есть смысл исправить.
И по поводу случая, "когда ноль строк" - можно пару слов добавить?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594172
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryВ русской документации ошибка перевода.
В доке ясно написано
какого, нафиг, перевода? русский LR первичен, английский - перевод с русского.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594178
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

ну значит там разобрались что я имел ввиду и поправили
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594179
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594182
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> какого, нафиг, перевода? русский LR первичен

:)

Русский LR (может, не конечный, но его куски и более ранние LR)
были как раз переводами с английских LRU. В любом случае, надо
о контенте думать, а не кто у кого перевёл неверно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594188
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

не могло быть этого в LRU, ибо эта часть в FB не менялась
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594189
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

я не знаю, где у вас "интуитивно по синтаксису ожидается". Тут уже отписались на эту тему, но я добавлю объяснение

if a = 5 then
b:=10;

если a = 4 - что будет в переменной b? Вот тут абсолютно так же - если записей не было, то ничего и не присваивается переменной.

p.s. да, в доке, в разделе INTO, это должно быть написано, потому что этот вопрос реально задолбал.
И я у себя про него отписывал - раздел "обработка данных..." в http://www.ibase.ru/sp_call/
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594218
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> не могло быть этого в LRU, ибо эта часть в FB не менялась

Именно этот абзац - ХЗ. Аналогичные куски текста есть, например,
в описании ES и если вы не пользуетесь копипастом (ручным или
профессиональным в соотв. ПО) - то делаете что-то не так.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594237
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

ну ES то был сделан в Firebird, а SELECT в процедурах со времён IB
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594268
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> ну ES то был сделан в Firebird, а SELECT в процедурах со времён IB

И именно поэтому он есть в LRU и поведение синглтона в обоих
случаях идентично (по крайней мере, в обсуждаемом контексте).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594275
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

исправлю
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594278
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryКстати, в документации к Postgre, там, где into не табличный, явно написано, что into :var присваивает null, если выборка пустая.

Какие жалкие людишки копаются в этом постгрессе.

Нет чтобы обозвать пользователей дураками и лентяями и послать их на три полярные экспедиции
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594295
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДВ документации фраза есть:

Стр. 295Простой оператор SELECT может быть использован в PSQL, только если он возвращает
единственную строку, то есть, если это запрос типа синглтон (singleton).

Тут просто складывают яблоки с апельсинами.

На самом деле есть ДВА способа использовать бесцикловый SELECT внутри PSQL, и у них вообще говоря возможно разное поведение при "особых случаях".

Я два раза уже называл эти разные способы выше

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
execute block returns (i integer) as
begin
  i = ( select rdb$relation_id from rdb$database where 1<2 );
  suspend;
end

execute block returns (i integer) as
begin
  i = ( select rdb$relation_id from rdb$database where 1>2 );
  suspend;
end

execute block returns (i integer) as
begin
  select rdb$relation_id from rdb$database where 1<2 into :i ;
  suspend;
end

execute block returns (i integer) as
begin
  select rdb$relation_id from rdb$database where 1>2 into :i ;
  suspend;
end



А вообще, действительно интересно, что *по стандарту* должно возвращать выражение "(select ....)" если записей нет вообще - NULL или ошибку.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594300
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvif a = 5 then
b:=10;

если a = 4 - что будет в переменной b? Вот тут абсолютно так же

Да нет тут никакого "абсолютно так же".

Нету у топикстартера ни цикла, не ветвления, НЕ-ТУ.

Разговор примерно такой:

- Если я зимой на бетон уроню банку с бензином - он загорится?
- Что будет, если ты уронишь в банку с бензином тлеющий окурок, а потом выронишь саму банку? Загорится? Ну вот в твоей случае "абсолютно так же" (С)
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594307
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

Тут случай, когда select используется с into, так что ты э... гонишь. :)
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594312
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryУ кого стандарт SQL под рукой есть? Там в SELECT INTO что-то сказано по поводу пустых запросов?

В стандарте INTO вообще в другом месте ставится

Но поведение FB в связи с INTO вроде бы правильное, если потмо в стандарте ничего не поменяли

ISO/IEC 9075-2:1999 (E)
14.5 <select statement: single row>
Data manipulation p.665

......

Format
<select statement: single row> ::=
SELECT [ <set quantifier> ] <select list>
INTO <select target list>
<table expression>

.....

<table expression> ::=
<from clause>
[ <where clause> ]
[ <group by clause> ]
[ <having clause> ]

.......

a) If the cardinality of Q is greater than 1 (one), then an exception condition is raised: car-
dinality violation. It is implementation-dependent whether or not SQL-data values are
assigned to the targets identified by the <select target list>.
b) If Q is empty, then no SQL-data values are assigned to any targets identified by the <select
target list>, and a completion condition is raised: no data.
c) Otherwise, values in the row of Q are assigned to their corresponding targets
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594314
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДТут случай, когда select используется с into, так что ты э... гонишь. :)

и что, там от этого цикл вырос? не вырос.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594330
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch...
a) If the cardinality of Q is greater than 1 (one), then an exception condition is raised: car-
dinality violation. It is implementation-dependent whether or not SQL-data values are
assigned to the targets identified by the <select target list>.
b) If Q is empty, then no SQL-data values are assigned to any targets identified by the <select
target list>, and a completion condition is raised: no data.
c) Otherwise, values in the row of Q are assigned to their corresponding targets

Т.е., поведение правильное, лишь отразить в доке сие требуется.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594343
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochДа нет тут никакого "абсолютно так же".
Нету у топикстартера ни цикла, не ветвления, НЕ-ТУ.
ну как нету.
если_есть_результат то присвоить_значение_переменной

Соответственно, когда результата_нет , ничего не присваивается.
AriochНет чтобы обозвать пользователей дураками и лентяями и послать их на три полярные экспедиции
я не понимаю, чего ты хочешь. Симонов уже сказал, что документацию поправит. Что еще?
AriochЯ два раза уже называл эти разные способы выше
я не вижу разницы в этих способах. Нет результата - ничего не присваивается. Есть результат - присваивается.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594352
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

угу.

Также и с выражениями вроде бы корректно (хотя я бы распял рас шесть тех, кто стандарт писал. Это явно аннунаки с другой галактики были, найти в нём что-то не вывихнув остатки черепа.... Ну да ладно, пустое).
Но в доке тоже надо отобразить.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
execute block returns (i integer) as
begin
  i = 10;
  i = ( select rdb$relation_id from rdb$database where 1>2 );
--  select rdb$relation_id from rdb$database where 1>2 into :i ;
  suspend;
end

execute block returns (i integer) as
begin
  i = 10;
--  i = ( select rdb$relation_id from rdb$database where 1>2 );
  select rdb$relation_id from rdb$database where 1>2 into :i ;
  suspend;
end



Первое вернёт NULL, а второе - 10.

SQL 1999-2
2) Let SS be a <scalar subquery>.
Case:
a) If the cardinality of SS is greater than 1 (one), then an exception condition is raised: cardi-
nality violation.
b) If the cardinality of SS is 0 (zero), then the value of the <scalar subquery> is the null value .
c) Otherwise, let C be the column of <query expression> simply contained in SS. The value of
SS is the value of C in the unique row of the result of the <scalar subquery>.

Query expressions p.283
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594355
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery > У кого стандарт SQL под рукой есть? Там в SELECT INTO
WildSery > что-то сказано по поводу пустых запросов?

Сказано, что ничего не присваивать (и соотв. не делать
опуствующие присвоению действия) и не рейзить ошибку.

Arioch> А вообще, действительно интересно, что *по стандарту* должно возвращать
Arioch> выражение "(select ....)" если записей нет вообще - NULL или ошибку.

Null, конечно.

If a <value expression primary> is a <scalar subquery> and the
result of the <subquery> is empty, then the result of the <value
expression primary> is the null value.

Arioch> и что, там от этого цикл вырос? не вырос.

Ты не заметил, что кроме тебя про циклы вообще никто даже не заикался?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594357
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

это же очевидно. Не надо путать тёплое с мягким
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594359
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvя не вижу разницы в этих способах. Нет результата - ничего не присваивается. Есть результат - присваивается.

А стандарт - видит. И сам firebird тожt видит
Если результата нету - то присваивается NULL
В одном из случаев.

И если даже ты не можешь навскидку вспомнить правильное по стандарту поведение, странно это ожидать от чайников.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594360
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> я не вижу разницы в этих способах.
kdv> Нет результата - ничего не присваивается.
kdv> Есть результат - присваивается.

Нифига себе заявление!
Дим, пожуй чего-нибудь,
подумай ещё пару раз...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594361
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамТы не заметил, что кроме тебя про циклы вообще никто даже не заикался?

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

rdb_devЕсли, к примеру, подобный запрос внутри FOR возвращает строки
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594362
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch> Но в доке тоже надо отобразить.

Что именно? Конкретный пример туда перетащить?
Или, может, весь стандарт перевести и туда втюхать? :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594363
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэто же очевидно. Не надо путать тёплое с мягким

Нет. Это - всего лишь привычно, и ни в коем случае не очевидно.

Это даже KDV как оказалось не очевидно.

Зато все тут обронзовели и с "тупыми юзерами" только через губу могут общаться
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594364
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Может быть и весь стандарт.

Потмоу что Language Reference это в том числе и БЕСПЛАТНОЕ изложение части стандарта, который сам по себе стоит больших денег. И изложение на нормальном понятном языке, а не на языке аннунаков.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594365
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch> Иногда лучше жевать, чем....
> ...чем торопиться, скажем вежливо.
> rdb_dev
> Если, к примеру, подобный запрос внутри FOR возвращает строки

Виноват, не ты один такой болезный...
Хотя даже он про For сказал после тоих "циклов".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594366
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch> Может быть и весь стандарт.

Предлагаю проголусувать. Чё мелочиться-то...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594370
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамАналогичные куски текста есть, например,
в описании 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

раз копипаст, два копипаст - и как бы за распространение вареза не штрафанули, Эмбаркадере деньги сейчас нужны.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594376
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochПотмоу что Language Reference это в том числе и БЕСПЛАТНОЕ изложение части стандарта,

чушь. Совпадение со стандартом будет только в том случае, если так ведёт себя Firebird. Если поведение отличается от стандартного, то оно будет описано. И никто SQL стандарт туда тащить не будет.

И ещё между присвоением и into есть огромная разница. Как это может быть не очевидно я не понимаю. Нельзя выполнить присвоение переменной, не изменив её
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594378
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch> а на ES какая лицензия, кому копирайт принадлежит ?

ES - это execute statement.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594379
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНельзя выполнить присвоение переменной, не изменив её

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

А если бы в стандарте про SELECT INTO написали, что присваивается NULL, то и там бы присваивали, а не пропускали.

Путать очевидное всем и привычное лично тебе, увы свойственно всем людям.
Даже когда к тебе лично приходят люди, которым не очевидно, все равно прощё их записать в недочеловеки и остаться при своём. И получить удовольствие послав пользователей через губу идти покупать стандарты.
Всё, надоело.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594380
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> И никто SQL стандарт туда тащить не будет.

Ну всё, не судьба. Даже проголусувать не надо
(а мне было интересно на результаты посмотреть).

> Как это может быть не очевидно я не понимаю.

Как выяснилось, даже Дима путается.
Хотя к чему сюда скалярный вариант
вообще приплели непонятно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594384
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch> и присваивали не изменив бы как миленькие.

Не факт. И это имело бы другие сопутствующие... "нюансы",
которые нужно было бы знать, и, вероятно, описывать в доке.

> прощё их записать в недочеловеки и остаться при своём.
> И получить удовольствие послав пользователей через губу

Уймись уже, подобной фигнёй тут только ты страдаешь.
ТС спросил, ему первым постом объяснили "почему",
вторым постом объяснили "как". А потом пришёл ты
поручик Ржевский и тут такооооое началось...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594392
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

да Дима просто не пользуется таким присвоением. Я тоже, хотя знаю, что так можно
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594396
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык и я не пользуюсь (не столько потому что не нравится,
сколько потому что одинарный скаляр редко нужен бывает,
чаще строковый скаляр). Перепутал, бывает.

Это из разряда случаев, когда люди gen_id и контекстные
переменные напрямую не умеют вызывать. :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594404
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, и в чем там разница.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594408
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНельзя выполнить присвоение переменной, не изменив еe
тоже логично. Но в случае отсутсвия rowset вся конструкция
i=(select);
превращается в
i=;
и все. Должна-ли такая конструкция работать эквивалентно явному
i=null;
?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594409
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvв случае отсутсвия rowsetесть чёткое правило в стандарте, выше приводилось.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594411
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамНу всё, не судьба. Даже проголусувать не надо
(а мне было интересно на результаты посмотреть).
тут хоть обголосуйся, но написание документации - работа платная. Так что пока ее бесплатно писать никто не хочет или не умеет, голосуйте хоть за втыкание трех стандартов в документацию, результат будет одинаков - шиш с маслом.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594414
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladесть чёткое правило в стандарте, выше приводилось.
тогда я не знаю, что еще обсуждать. А то все такие говорливые стали, прямо прорвало.
В документации будет дополнено? Будет. Вот и славно (трам-пам-пам).
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594417
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> Рустаму, про "правильно" - null это все равно результат.
kdv> А если результата нет, значит и присваивать нечего.

Даже если забыть про стандарт, то отсутствие результата -
тоже результат и странно хотеть оператор присваивания,
который ничего не присваивает и не выдаёт ошибку.

> Вообще для select результатом является набор записей (множество).
> Если множество пустое, как можно что-то записывать в i ?

Не для скалярного. Для скалярного чётко расписано,
что делать в случае 0, что в случае 1 и что в случае > 1.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594419
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> тут хоть обголосуйся

Не-не, мне таки интересно было бы на голосующих посмотреть. В список занести. (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594492
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvWildSeryВ русской документации ошибка перевода.
В доке ясно написано
какого, нафиг, перевода? русский LR первичен, английский - перевод с русского.Тот случай, когда перевод лучше оригинала?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594508
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochkdvя не вижу разницы в этих способах. Нет результата - ничего не присваивается. Есть результат - присваивается.

А стандарт - видит. И сам firebird тожt видит
Если результата нету - то присваивается NULL
В одном из случаев.

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

Ты закусывай иногда. Хотя бы в одном из случаев. Положить в переменную что достал, не достал, не лОжь зеркальце в парту (С) - это стандарт и это логично, а присвоить переменной что-то, неважно откуда взявшееся - это к SQL имеет весьма слабое отношение.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594509
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамArioch> Может быть и весь стандарт.

Предлагаю проголусувать. Чё мелочиться-то...


Ну. И на место Трампа выбрать этого... как его... А! Родченкова, вот!
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594533
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю свои 5 копеек. То, что конструкция SELECT INTO не меняет значение переменных при пустом наборе - в принципе логично. Но не очевидно для человека. У нас все разработчики обязательно наступали на этот нюанс. Я и сейчас второпях иногда забываю про то, что при переделке кода с "A = (SELECT FROM XXX)" на "SELECT FROM XXX INTO :A, :B" переменные надо заранее обнулить. Поэтому отразить в доке такое поведение считаю правильным.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594539
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxSELECT INTO не меняет значение переменных при пустом наборе - в принципе логично. Но не очевидноА что, если б меняла - было бы очевиднее?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594542
CyberMax,
Я бы даже попросил дополнительный предикат к into (типа reset). Чтобы обнулять в случае отсутствия результатов.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594545
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockCyberMaxSELECT INTO не меняет значение переменных при пустом наборе - в принципе логично. Но не очевидноА что, если б меняла - было бы очевиднее?
Да.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594694
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxYuRockпропущено...
А что, если б меняла - было бы очевиднее?
Да.
А на что меняла, разрешите полюбопытствовать?
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594719
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никого же не смущает, что изначально переменные инициализированы как NULL.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594720
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, никогда не задумывался, а чем начально инициализируется переменная DECLARE V1 INT NOT NULL ? Нулём?
У меня щас под рукой FB нету проверить :(
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594724
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryКстати, никогда не задумывался, а чем начально инициализируется переменная DECLARE V1 INT NOT NULL ? Нулём?
У меня щас под рукой FB нету проверить :(
По-моему исключение будет, если так и не инициализировать ее.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594726
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryНикого же не смущает, что изначально переменные инициализированы как NULL.Не всегда. Или default-значением домена.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39594731
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockWildSeryНикого же не смущает, что изначально переменные инициализированы как NULL.Не всегда. Или default-значением домена.Или default-значением при определении переменной. Я же не об этом пишу.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39595053
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryКстати, никогда не задумывался, а чем начально инициализируется переменная DECLARE V1 INT NOT NULL ? Нулём?
У меня щас под рукой FB нету проверить :(

У меня нет под рукой FB, допускающего расширенный синтаксис декларирования переменных, но чисто по логике вещей, если бы я эту фичу делал, я бы отсёк такую конструкцию на уровне синтаксиса. Ибо она противоречива по определению.
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39595062
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка,

Код: sql
1.
2.
3.
4.
5.
6.
7.
SQL> set term ^;
SQL> execute block as
CON> declare i int not null;
CON> begin
CON>   exit;
CON> end
CON> ^


Нет ошибки.
Но

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> execute block returns (n int) as
CON> declare i int not null;
CON> begin
CON>   n = i; suspend;
CON> end
CON> ^

           N
============
Statement failed, SQLSTATE = 42000
validation error for variable I, value "*** null ***"
-At block line: 4, col: 3
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39595069
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишкаWildSeryКстати, никогда не задумывался, а чем начально инициализируется переменная DECLARE V1 INT NOT NULL ? Нулём?
У меня щас под рукой FB нету проверить :(

У меня нет под рукой FB, допускающего расширенный синтаксис декларирования переменных, но чисто по логике вещей, если бы я эту фичу делал, я бы отсёк такую конструкцию на уровне синтаксиса. Ибо она противоречива по определению.
Проверил. Такая фича разрешена, и я считаю это логичным, ведь можно же объявлять переменные по домену, который может быть с ограничением NOT NULL.

Работает так (ИМХО):
- инициализируется NULL-ом;
- если к переменной до [корректной] инициализации не было обращений (или вообще не было обращений) - всё ок;
- если произошло обращение, а она всё еще NULL - исключение validation error value ***null***.

Проверял на 3.0.2, но в 2.1 тоже так был, насколько я помню.

Пример:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE NEW_PROCEDURE ()
RETURNS(
  OUT_ID INTEGER
)
AS
DECLARE VARIABLE ID INTEGER NOT NULL;
--DECLARE VARIABLE ID T_KEY; -- результат тот же /*T_KEY: CREATE DOMAIN T_KEY AS INTEGER NOT NULL;*/
BEGIN
  OUT_ID = ID;
  SUSPEND;
END


Компилится, при
Код: sql
1.
SELECT * FROM NEW_PROCEDURE


выдается иключение если не закомментить строку "OUT_ID = ID"
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39595071
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, не успел...
...
Рейтинг: 0 / 0
Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
    #39595298
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladСтарый плюшевый мишка,
Нет ошибки.
Но
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> execute block returns (n int) as
CON> declare i int not null;
CON> begin
CON>   n = i; suspend;
CON> end
CON> ^

           N
============
Statement failed, SQLSTATE = 42000
validation error for variable I, value "*** null ***"
-At block line: 4, col: 3

Lazy initialization
...
Рейтинг: 0 / 0
86 сообщений из 86, показаны все 4 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неустановка локальной переменной при пустом наборе: стандарт, фича или баг?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]