|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
FB 2.5.8 1. Переменные объявленные в declare и returns без default и not null при входе имеют значение NULL? 2. Переменные обявленные в declare и returns с default имеют значение default? 3. Переменные объявленные в declare и returns с not null при входе какое имеют значение? 4. Объявленая переменная х меняется в теле процедуры и имеет какое-то значение. Затем происходит select .... from ... into :x. Этот select пуст. Какое значение будет иметь переменная x? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 16:05 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959, 1. Да 2. Для declare да, в returns ты не можешь объявить default 3. нет. И процедура будет ругаться при попытки получения значения такой переменной 4. то же что и до select ... into нежели самому сложно тест сделать? Даже ХП создавать не надо есть execute block ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 16:18 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Симонов Денис, 3. Был вопрос - какое имеют значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 16:23 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959returns с not null это ахинея. Типа, процедура должна возмутиться, что ты в returns ничего не записал? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 16:39 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Симонов Денис, Все не так просто. 5. В переменных returns default отрабатываются при suspend? Или только при входе в процедуру? В документации про это я ничего не нашел. Скажем так- про жизненный цикл default и not null в теле процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 16:39 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
kdv, Дык возмущается.... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 16:46 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959, я тебе вроде уже сказал что default нельзя объявить в returns. Попробуй выполни Код: sql 1. 2. 3. 4. 5. 6.
Вот not null кстати позволяется. И как я уже сказал, если выходная переменная не инициализирована в селективной ХП, то будет ошибка. При первом "suspend". Для экспериментов Код: sql 1. 2. 3. 4. 5. 6.
Для локальных переменных not null проверяется только при обращении к переменой. Если она просто объявлена и не используется то по фигу. По поводу документации. Я считаю что это настолько очевидные вещи, что вопросов ни у кого не вызывают. Ты первый кто спрашивает ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 16:51 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Симонов Денис, Поработав с разными базами некоторые вещи тоже для меня были очевидны, а реализация в FB оказалась иной. Спасибо за разъяснения. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 17:01 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959 а реализация в FB оказалась иной. и насколько она оказалась иной от "интуитивно понятной" или "практической"? select from insert into для многих людей, почему-то, оказывается интуитивно непонятным. Я всё время привожу пример if a = 0 then b:=5; что будет в b, если a <> 0 ? Никто не знает. Вот незадача-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 22:11 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
kdv, не ну оракл генерирует ошибку (no data found) на пустом селекте, которую надо ещё обработать. Может это имеется в виду? Лично мне поведение оракла не кажется удобным ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 22:19 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Симонов Денис, в моем примере компилятор тоже не генерит ошибку. Теоретически, конечно, можно было бы обрабатывать это дело по какому-нибудь SQLCODE, но лично мне более близок вариант типа Код: sql 1. 2. 3. 4. 5. 6.
чем when sqlcode .... then ... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2018, 23:10 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
kdv, А если селект как раз и вернул этот самый -1? Ведь есть же для этого ROW_COUNT. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 10:00 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Vlad F, по поводу ROW_COUNT согласен. Но справедливости ради, обычно разработчик знает что может, а что не может вернуть select, а что в нём является "специальным" значением. Если этот field является FK на какой-нибудь маленький служебный справочник, то вполне можно сказать какие значения точно не попадутся. Если FIELD имеет ограничение NOT NULL, то можно утверждать что NULL оно не вернёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 11:26 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Симонов Денис, Типа каждую переменную в into я должен предварительно выставить в null, для того чтоб проверить что select пустой? Я ж привел простой пример с одним параметром.... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 16:05 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Симонов Денис, Пробовал работать с ROW_count в FB2.5.8 Логики никакой не словил. Я только про себя и меру развития своей логики... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 16:08 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959, если ты этим переменным ранее значение не присвоил, то они по умолчанию NULL. Это тебе не delphi, C++ где в неинициализированных переменных может быть всякий мусор. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 16:11 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Vlad FА если селект как раз и вернул этот самый -1? Ведь есть же для этого ROW_COUNT. -1 это просто пример. Если столбец идентификатор, то там значения от нуля и выше. Если значения другие, значит надо присваивать такое, которого заведомо нет в таблице. ROW_COUNT - да, можно использовать, но я ортодокс, так что, без него. p.s. по последним топикам в этом разделе такое впечатление, что у людей умственная деградация происходит. Извините за констатацию, если что. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 16:18 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
kdv, Спасибо за констацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 16:21 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959Симонов Денис, Типа каждую переменную в into я должен предварительно выставить в null, для того чтоб проверить что select пустой? Я ж привел простой пример с одним параметром.... посмотри на for select и может тогда станет понятнее логика работа select ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 16:21 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959Спасибо за констацию этот топик вполне норм, только ответы в нём не всегда ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 19:58 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
m7m, был вопрос не for select, а просто select ..... разниза есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 23:21 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959разниза есть? Нет. Технически разница между ними нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 01:22 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovbsa1959разниза есть? Нет. Технически разница между ними нет. Код: sql 1.
multiple rows in singleton select. Код: sql 1.
OK Таки есть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 07:52 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959m7m, был вопрос не for select, а просто select ..... разниза есть? Сисдба Мастеркеевич Таки есть :) В контексте заданного вопроса bsa1959FB 2.5.8 4. Объявленая переменная х меняется в теле процедуры и имеет какое-то значение. Затем происходит select .... from ... into :x. Этот select пуст. Какое значение будет иметь переменная x? разницы нет никакой Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 09:53 |
|
Вопрос знатокам по процедурам
|
|||
---|---|---|---|
#18+
bsa1959FB 2.5.8 1. Переменные объявленные в declare и returns без default и not null при входе имеют значение NULL? в последних версиях да. раньше бывал мусор. bsa19593. Переменные объявленные в declare и returns с not null при входе какое имеют значение? никакого. если обявлены с доменом not null, то при обращении на чтение или запись null выскочит обшибка bsa19594. Объявленая переменная х меняется в теле процедуры и имеет какое-то значение. Затем происходит select .... from ... into :x. Этот select пуст. Какое значение будет иметь переменная x? никакого. даже обращения к ней не будет на выходе неприсвоенные переменные, с доменами not null вызовут ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 10:02 |
|
|
start [/forum/search_topic.php?author=superkonst&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 443ms |
total: | 722ms |
0 / 0 |