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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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