Текущее время: Сб, июл 19 2025, 15:24

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Как отловить ошибку DBIF_RSQL_INVALID_RSQL
СообщениеДобавлено: Пт, окт 27 2006, 11:21 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 23 2006, 18:18
Сообщения: 90
При работе программы (самописной) возникает ошибка DBIF_RSQL_INVALID_RSQL.
Описание ошибки -
Цитата:
When attempting to open a cursor for a SELECT or OPEN CURSOR, all 16 cursors for the internal SAP database interface were already in use.

В программе рекурсия, и видимо возникает бесконечный цикл.
Никто не знает как можно программно обработать такое событие. CATCH EXCEPTION эту ошибку не обработал (пробовал DATA_ACCESS_ERRORS). Может быть есть какая функция которой можно считать количество открытых курсоров, или каким иным способом обойти такую проблему.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 12:00 
Гость
а не пробовали?

TRY.
CATCH CX_SY_OPEN_SQL_DB .
ENDTRY.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 12:26 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 23 2006, 18:18
Сообщения: 90
РМщик написал(а):
а не пробовали?

TRY.
CATCH CX_SY_OPEN_SQL_DB .
ENDTRY.

А что это за конструкция такая? В хелпе ничего про try не находит. Синтаксис проверка ругается.
Как ее использовать то? Может напишете поподробней.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 12:28 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
А может MIX не на ABAP пишет?

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 12:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Zharik написал(а):
А может MIX не на ABAP пишет?
Это значит, что версия у него - не больше 4.6.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 12:55 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
Цитата:
А может MIX не на ABAP пишет?


:) :) :) :) :)

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 12:56 
Гость
в 4.7 прекрасно работает

Code:
TRY.
    SELECT  * FROM ITAB.

    ENDSELECT.
    CATCH: CX_SY_OPEN_SQL_DB.

ENDTRY.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 13:13 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 23 2006, 18:18
Сообщения: 90
РМщик написал(а):
в 4.7 прекрасно работает

4.6B


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отловить ошибку DBIF_RSQL_INVALID_RSQL
СообщениеДобавлено: Пт, окт 27 2006, 13:21 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Mix написал(а):
При работе программы (самописной) возникает ошибка DBIF_RSQL_INVALID_RSQL.
...
В программе рекурсия, и видимо возникает бесконечный цикл.
Никто не знает как можно программно обработать такое событие. CATCH EXCEPTION эту ошибку не обработал (пробовал DATA_ACCESS_ERRORS). Может быть есть какая функция которой можно считать количество открытых курсоров, или каким иным способом обойти такую проблему.

В дампе как правило присутствует стек вызовов попрограмм и ФМ. Так что стоит его проанализировать.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 13:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
По-моему ясно написано, что у вас не прошла попытка 17-й раз открыть курсор. По всей видимости у вас получается куча вложенных друг в друга SELECT .. ENDSELECT. Либо куча OPEN CURSOR без CLOSE CURSOR.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 14:15 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 23 2006, 18:18
Сообщения: 90
Цитата:
По-моему ясно написано, что у вас не прошла попытка 17-й раз открыть курсор. По всей видимости у вас получается куча вложенных друг в друга SELECT .. ENDSELECT

Цитата:
В дампе как правило присутствует стек вызовов попрограмм и ФМ.

По-моему в первом посте ясно написал - рекурсия. Соответственно то это открыты SELECT ... ENDSELECT, и в какой конкретно подпрограмме - прекрасно знаю. Вопрос только в том, чтобы отловить такую ситуации и определить из-за какого документа сваливается в цикл, дабы не просматривать и анализировать весь bseg.
А уже на базе этого документа рассмотреть ситуацию и понять что-за тип зацикливания и как его исключить.
Сорри если сразу написал непонятно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 14:52 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Mix написал(а):
По-моему в первом посте ясно написал - рекурсия. Соответственно то это открыты SELECT ... ENDSELECT, и в какой конкретно подпрограмме - прекрасно знаю. Вопрос только в том, чтобы отловить такую ситуации и определить из-за какого документа сваливается в цикл, дабы не просматривать и анализировать весь bseg.
А уже на базе этого документа рассмотреть ситуацию и понять что-за тип зацикливания и как его исключить.
Сорри если сразу написал непонятно.

Кроме стека вызова в дампе присутствуют ещё и т.н. "Выбранные переменные". Неужели по ним нельзя определить контекст в котором идёт работа и возникает ошибочная ситуация?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 27 2006, 15:05 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 23 2006, 18:18
Сообщения: 90
sy-uname написал(а):
Кроме стека вызова в дампе присутствуют ещё и т.н. "Выбранные переменные". Неужели по ним нельзя определить контекст в котором идёт работа и возникает ошибочная ситуация?

Спасибо, помогло.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB