powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Слишком глубокая вложенность предложений DO или выражения
16 сообщений из 16, страница 1 из 1
Слишком глубокая вложенность предложений DO или выражения
    #39347707
9IKOB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток!

При выполнении хранимой процедуры из exe-шника (сервер - MS SQL Server 2012) постоянно вылетает ошибка "Слишком глубокая вложенность предложений DO или выражения". На форуме MS SQL Server пишут, что эта ошибка не серверная. Я уж и не знаю, куда копать... Может кто с таким сталкивался?
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39347732
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9IKOB,

Номер ошибки?
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39347734
9IKOB,

увеличь значение STACKSIZE в config.fpw (max 64000)
Но без фанатизма.
По умолчанию 128.
Видимо так наворотили вызовов, что превысили сей предел.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39349573
9IKOB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильный проходящий.9IKOB,

увеличь значение STACKSIZE в config.fpw (max 64000)
Но без фанатизма.
По умолчанию 128.
Видимо так наворотили вызовов, что превысили сей предел.

Спасибо. Может на будущее пригодится. А я поступил следующим образом: выполнил код хранимой процедуры в Management Studio - вывалилось несколько ошибок. После их исправления проблема решилась.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39349581
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9IKOBСпасибо. Может на будущее пригодится. А я поступил следующим образом: выполнил код хранимой процедуры в Management Studio - вывалилось несколько ошибок. После их исправления проблема решилась.
Не пригодиться, да и проблему ты не решил. У тебя кривой код, который некорректно работал при ошибке в SQL запросе.
То что ты исправил запрос означает что перестал отрабатывать твой код с ошибкой.
Как только возникнет ошибка на стороне SQL-сервера, твоя прога опять переглючит.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39349846
9IKOB,

полностью согласен с Dima T - причина ошибки не устранена.

Описанное поведение очень похоже на зацикливание обработчика ошибок. Если это действительно так, то при следущей подобной ошибке в SQL коде опять будет выскакивать это сообщение.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39349989
9IKOB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, правильный проходящий.,

Большое спасибо за советы. Действительно, у обработчика ошибок SQLEXEC весьма корявый код.
Проблема, похоже, в следующем: при возникновении ошибки ODBC с кодами 10054, 232, 233, 64, 11, 4, 0 выполняется SQLIDLEDISCONNECT(), и если SQLIDLEDISCONNECT() возвращает значение > 0, то рекурсивно выполняется функция с SQLEXEC; и так до бесконечности. Видимо, когда происходит попытка рекурсивного вызова функции с SQLEXEC в 129-й раз, тогда и вываливается ошибка FoxPro.

Ещё подскажите, пожалуйста, как у вас реализована обработка ошибки при потере связи с сервером?
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350015
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9IKOBЕщё подскажите, пожалуйста, как у вас реализована обработка ошибки при потере связи с сервером?
Завершаю работу приложения. В нормальном режиме связь не теряется.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350024
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. есть объект-обертка над соединением с MS Sql, если в запросе происходит ошибка, не важно по какой причине, то делается запись в лог и возвращается управление коду выше, а он сам решает что дальше делать, как-то обработать или тоже завершиться и т.д. до самого верха. схематично так
Код: sql
1.
2.
3.
4.
5.
loSql = ... объект обертка
if !loSql.Execute("....")
   запись в лог ошибки loSql.GetLastError()
   return .F.
endif


внутри loSql.Execute() однократный вызов SQLEXEC(). Само соединение устанавливается при старте проге, хэндл хранится как глобальная переменная.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350090
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТ.е. есть объект-обертка над соединением с MS Sql, если в запросе происходит ошибка, не важно по какой причине, то делается запись в лог и возвращается управление коду выше, а он сам решает что дальше делать, как-то обработать или тоже завершиться и т.д. до самого верха. схематично так
Код: sql
1.
2.
3.
4.
5.
loSql = ... объект обертка
if !loSql.Execute("....")
   запись в лог ошибки loSql.GetLastError()
   return .F.
endif


внутри loSql.Execute() однократный вызов SQLEXEC(). Само соединение устанавливается при старте проге, хэндл хранится как глобальная переменная.

А что это такое - объект-обертка, он что оборачивает?
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350125
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12А что это такое - объект-обертка, он что оборачивает?
Я уже написал в том посте
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350131
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tsg12А что это такое - объект-обертка, он что оборачивает?
Я уже написал в том посте

Т.е. для каждого вызова SQLEXEC() вы почему-то каждый раз создаете этот странный объект, запускаете его, и он разово выполняет вашу процедуру с SQLEXEC()?
Зачем, если можно просто выполнить эту вашу процедуру, записав ее куда-нибудь, даже хотя бы в .prg?

К тому же, похоже, что у ТС проблема другая, с циклом пары SQLIDLEDISCONNECT()-пустой SQLEXEC(), что-то типа этого:
http://www.sql.ru/forum/1111775/oshibka-konnektora-my-sql?hl=sqlidledisconnect
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350144
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Т.е. для каждого вызова SQLEXEC() вы почему-то каждый раз создаете этот странный объект, запускаете его, и он разово выполняет вашу процедуру с SQLEXEC()?
Зачем, если можно просто выполнить эту вашу процедуру, записав ее куда-нибудь, даже хотя бы в .prg?
Поток сознания какой-то, не понимаешь - твои проблемы.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350147
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tsg12Т.е. для каждого вызова SQLEXEC() вы почему-то каждый раз создаете этот странный объект, запускаете его, и он разово выполняет вашу процедуру с SQLEXEC()?
Зачем, если можно просто выполнить эту вашу процедуру, записав ее куда-нибудь, даже хотя бы в .prg?
Поток сознания какой-то, не понимаешь - твои проблемы.

Не груби, нехорошо это.

Аналогичный пример работы c SQLEXEC() есть и в поставке VFP9, правда не совсем удобный:
ffc/_dataquery.vcx/_execsp
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350148
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9IKOB, ты спрашивай что непонятно, отвечу, на sg12 не обращай внимания, это тролль.
...
Рейтинг: 0 / 0
Слишком глубокая вложенность предложений DO или выражения
    #39350158
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T9IKOB, ты спрашивай что непонятно, отвечу, на sg12 не обращай внимания, это тролль.

А я бы с этой проблемой посоветовал погуглить по "SQLIDLEDISCONNECT()":
http://forum.foxclub.ru/read.php?28,580830,580939#msg-580939
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Слишком глубокая вложенность предложений DO или выражения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]