Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Nady
Зарегистрирован: 12.06.2010 Сообщения: 17
|
Добавлено: Чт Окт 07, 2010 14:47 Заголовок сообщения: Время ожидания (timeout) |
|
|
Подскажите, пожалуйста, можно ли настраивать в Босс-кадровике время ожидания при выполнении запросов SQL. По умолчанию это время равно 5 мин и если запрос выполняется дольше, то вылетает по ошибке "Время ожидания истекло" (Timeout expired).
Если его нельзя настраивать, то как быть в таких ситуациях? |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пн Окт 11, 2010 11:39 Заголовок сообщения: |
|
|
см документацию: Содержание файла BOSSEXEC.INI |
|
Вернуться к началу |
|
 |
Dimich1978
Зарегистрирован: 18.05.2010 Сообщения: 69
|
Добавлено: Пт Окт 17, 2014 10:54 Заголовок сообщения: |
|
|
Вдруг кому то помогу, т.к. сейчас немного все поменялось
рассматриваем файл PREXEC.ini
в раздел, в конец прописываем параметр TimeOut
[ARM]
DSN=
UID=
MODULE=
SLINE=
TASK=
SETUP=0x2109
HTML=Address.html
XY=100,100,-11,MS Sans Serif,134217728,204
WallPaper=NO
TIMEOUT=18000 |
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Вт Ноя 29, 2022 11:17 Заголовок сообщения: |
|
|
В "Иерархии статей затрат" сначала возникла ошибка "the maximum recursion 100 ...", которую удалось победить с помощью "OPTION(MAXRECURSION 0)".
Однако, после этого не удается избежать "query timeout".
В настройках сервера отключили таймаут (Properties - Connections - Remote query timeout = 0). В rpexec.ini проставили "TIMEOUT=18000" - это 5 часов.
Однако, ошибке БК "Query timeout expired" это не мешает появляться (спустя несколько минут). |
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Вт Ноя 29, 2022 11:59 Заголовок сообщения: |
|
|
Вот этот запрос (базовый):
Код: | @hr_lst_expobj
SELECT
PC_ExpensesObj.id
, (CASE
WHEN pc_ExpensesObj.id_Parent = 0 THEN char(4)+'office2clsdfold'
WHEN pc_ExpensesObj.id = @hr_lst_expobj_tree:id_expobj THEN char(4)+'office2openfold'
ELSE ''
END)
, PC_ExpensesBase.ShortName
, PC_ExpensesBase.Name
, PC_ExpensesObj.ShortName
, PC_ExpensesObj.d_from[%x]
, PC_ExpensesObj.d_to[%x]
, (CASE WHEN PC_ExpensesObj.d_to >= @@d_from THEN 239 ELSE 247 END) as color -- цвет
, PC_ExpensesObj.mdate
, PC_ExpensesObj.uname
FROM PC_ExpensesObj _hintbrowser , PC_ExpensesBase _hintbrowser
WHERE
PC_ExpensesObj.id_firm = _id_firm[']
AND PC_ExpensesObj.id_base = PC_ExpensesBase.id
AND exists (select top 1 1 from PC_ExpensesTree WITH(NOLOCK) where PC_ExpensesTree.id_parent = 8069 and PC_ExpensesTree.id_obj = PC_ExpensesObj.id)
|
с условием
Код: | AND exists (select top 1 1 from PC_ExpensesTree WITH(NOLOCK) where PC_ExpensesTree.id_parent = 8069 and PC_ExpensesTree.id_obj = PC_ExpensesObj.id) |
и выдает ошибку рекурсий. Всё работает в базовом варианте. |
|
Вернуться к началу |
|
 |
superjek
Зарегистрирован: 04.04.2022 Сообщения: 29
|
Добавлено: Вт Ноя 29, 2022 17:51 Заголовок сообщения: |
|
|
tveritin вряд ли у вас уровень вложенности статей затрат > 100.
Такое возникает когда есть цикл подчинения:
A родитель B
B родитель С
С родитель A |
|
Вернуться к началу |
|
 |
superjek
Зарегистрирован: 04.04.2022 Сообщения: 29
|
Добавлено: Вт Ноя 29, 2022 18:11 Заголовок сообщения: |
|
|
Попробуйте выполнить запрос в management studio
Код: | with cte(id_rec, id_parent, id_root, level, path) as
(
Select ID as id_rec, id_parent, ID as id_root, 0, convert (varchar(max), id) as path
from PC_ExpensesObj WITH(NOLOCK)
union all
Select PC_ExpensesObj.ID as id_rec, PC_ExpensesObj.id_parent, cte.id_root, cte.Level+1, convert (varchar(max),cte.path +' & '+convert (varchar,PC_ExpensesObj.ID))
from cte
join PC_ExpensesObj WITH(NOLOCK) on PC_ExpensesObj.id_parent = cte.id_rec
)
select id_rec as id_obj, id_root as id_parent, level as lev,path
from cte
where level =90 |
В столбце path (полный путь из ID ) цикл будет заметен |
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Вт Ноя 29, 2022 18:16 Заголовок сообщения: |
|
|
Спасибо, уже разобрались. Были записи во вью PC_ExpensesTree , у которых id = id_parent
Вопрос теперь в другом. Почему функционал БК позволяет выбирать родителем себя самого при редактировании иерархии статей затрат? |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Ср Ноя 30, 2022 11:57 Заголовок сообщения: |
|
|
В диалоге hr_dlg_expobj
указано:
LOCAL _hrvw_expobj_look := '';
ALIAS _hrvw_expobj_look := {AND id_expobj != @hr_dlg_expobj:id};
т.е. себя выбрать не даст |
|
Вернуться к началу |
|
 |
tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Ср Ноя 30, 2022 12:08 Заголовок сообщения: |
|
|
С лукапом всё норм. Но, если мы берем и копируем в буфер значение базовой статьи и вставляем ее в поле "верхний уровень", то система проглатывает это значение и приравнивает id_parent = id.
Бухгалтера и ОТиЗники у нас продвинутые, нашли как обмануть лукап. |
|
Вернуться к началу |
|
 |
|