|
|
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Как правильно написать один курсов внутри другого, чтобы после обработки внутреннего курсора происходил переход на следующую запись внешнего курсора, а не прекращалась обработка? Вот такой код отрабатывает не корректно, обрабатывается только первая запись внешнего курсора cur1, затем отрабатывает внутренний курсор cur2, после чего не происходит переход к следующей записи cur1 и обработка заканчивается Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 13:35:04 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Ну начать с того, что переменная done у тебя ВСЕГДА равна нулю. Далее - если ты используешь прямое присвоение переменной типа INT, то фигли ты инициируешь и потом анализируешь как булеву? используй именно целые значения и прямое сравнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 13:44:30 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Akina, если я напишу Код: sql 1. то легче от этого не станет. Вопрос в том как правильно написать, чтобы не вылетало сразу из обоих курсоров. Т.е. когда во внутреннем заканчиваются данные, то SQLSTATE: 02000 и происходит выход сразу из обоих курсоров, а не только из внутреннего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 13:55:01 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
NathalyТ.е. когда во внутреннем заканчиваются данные, то SQLSTATE: 02000 и происходит выход сразу из обоих курсоров, а не только из внутреннего. Правильно. Обработчик никак не может узнать, с каким из курсоров проблема. Помоги ему - заведи переменную и перед фетчем пиши в неё опознавалку, откуда фетчишь. Например. Но лучше напиши правильный DECLARE CONTINUE HANDLER FOR NOT FOUND. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 14:04:30 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Akina Но лучше напиши правильный DECLARE CONTINUE HANDLER FOR NOT FOUND. Я, конечно, туплю по страшному., но ника кне помгу сообразить как правильно это написать. Следующий вариант не помогает. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Переменную завела, перед фетчем проверяю - так работает, но не красиво. Хочется чтобы всё по уму было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 15:18:38 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39084705&tid=1832581]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 288ms |

| 0 / 0 |
