Задача 102.161564

Задача :102.161564

Краткое описание :
Добавление булевского фильтра нарушает выборку
Описание :
MS SQL
Что измененно :


MSSQL
Навигация

----- ПРОЯВЛЕНИЕ ПРОБЛЕМЫ -----
Если во время вычисления булевского фильтра меняют структуру выборки (добавляют дочерние таблицы), то текущая навигация обрывается с результатом "больше нет данных".

Как измененно :

1. Добавлена защита процесса навигации от принудительного закрытия курсоров во время вычисления булевского фильтра.
2. Добавлена защита процесса навигации от подцепки дочерних таблиц и от сброса кеша во время вычисления булевского фильтра.
3. Добавлена защита процесса навигации от навигации по тому же узлу во время вычисления булевского фильтра при условии,
что в итоге позиция остаётся прежней по выходу из булевского фильтра (на эту защиту не даётся гарантия)
4. При включённом параметре Debug.DebugMessages выдаётся предупреждение, если сработала защита от случаев 2 и 3

Случаи 2 и 3 всё равно считаются аварийными, а вызвавший их прикладной код плохим.
Желательно, чтобы вообще не было обращений к БД из дополнительных фильтров,
для этого все необходимые для них таблицы надо затащить в основную выборку.

Название продукта Название компонента Тип Последняя версия Дата выхода
ms70drvMS70DRVDLL5.5.27.0