|
|
|
select field1 into mfield1
|
|||
|---|---|---|---|
|
#18+
Вызовет ли запись select field1 into mfield1... ошибку при выбранных 2 и более записях? И какую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 16:49 |
|
||
|
select field1 into mfield1
|
|||
|---|---|---|---|
|
#18+
Experiment will help... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 16:52 |
|
||
|
select field1 into mfield1
|
|||
|---|---|---|---|
|
#18+
Как видно из вопроса я неособо разбираюсь в informix и его встроенном языке поэтому для меня написать код затруднительно. Прошу помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 16:53 |
|
||
|
select field1 into mfield1
|
|||
|---|---|---|---|
|
#18+
Петров АндрейВызовет ли запись select field1 into mfield1... ошибку при выбранных 2 и более записях? Да (как и любая другая СУБД). Петров АндрейИ какую? В данном случае: SQL Error(-284) __________________________________________________________ A subquery has returned not exactly one row. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 17:01 |
|
||
|
select field1 into mfield1
|
|||
|---|---|---|---|
|
#18+
В цикле foreach ошибки не будет. ----------------------------------------------------------- Решительный шаг вперед -- результат хорошего пинка сзади ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 20:53 |
|
||
|
select field1 into mfield1
|
|||
|---|---|---|---|
|
#18+
Очень расплывчато вопрос поставлен, по-моему... Если это C, то будет выглядеть примерно так: ... $DECLARE :cursorName CURSOR FOR SELECT anyfield INTO :anyvariable FROM anytable; $OPEN :cursorName; $FETCH :cursorName; // здесь вернётся 1-я строчка (никаких ошибок) $CLOSE :cursorName; $FREE :cursorName; ... А если это хранимая процедура, то 1-ю строчку можно получить так: ... FOREACH SELECT anyfield INTO anyvariable FROM anytable EXIT FOREACH; -- Получаем 1-ю строчку и выходим из цикла END FOREACH; ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2005, 12:25 |
|
||
|
select field1 into mfield1
|
|||
|---|---|---|---|
|
#18+
Leonid VorontsovА если это хранимая процедура, то 1-ю строчку можно получить так: ... FOREACH SELECT anyfield INTO anyvariable FROM anytable EXIT FOREACH; -- Получаем 1-ю строчку и выходим из цикла END FOREACH; ...Если SELECT anyfield INTO anyvariable FROM anytable возвращает больше одной строки - это уже ошибка в написании этого запроса. Нужно либо в секции WHERE перечислить все поля уникального индекса (чтобы гарантированно в результате получали всегда одну строку), либо применять группировку. ИМХО. А просто запихивать это в цикл, получая всегда первую строку (при этом кто его там знает какая эта 1-я строка по мнению Информикса) и устраняя ругатню сервера, неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2005, 14:31 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=33306953&tid=1608879]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 359ms |

| 0 / 0 |
