ms70drv
Краткое описание :
atlwp.dll - повторный запуск галактики в том же процессе с большой вероятностью падаетОписание :
RuntimeLibraryЧто измененно :
Ядро рабочего процесса
----- СУТЬ ПРОБЛЕМЫ -----
При попытке повторного запуске Атлантис-приложения в отдельном потоке того же процесса, его выполнение с большой долей вероятности аварийно завершает работу.
Как измененно :
Реализованы методы инициализации библиотеки ядра и приложения в расчёте на запуск экземпляров Атлантис-приложения в отдельных потоках. Параллельная инициализация/финализация потоков не поддерживается, рекомендовано только последовательное исполнение рабочих потоков
ms70drv
Краткое описание :
Ошибка записи в базу данных из-за использования занятых адресовОписание :
MS SQLЧто измененно :
MSSQL
Ведение суррогатного ключа
----- ПРОЯВЛЕНИЕ ПРОБЛЕМЫ -----
Для таблиц, не имеющих явного суррогатного индекса, неправильно заполняется поле системного суррогатного индекса в операциях групповой вставки.
Как измененно :
Исправлено.
# ИНСТРУКЦИЯ ПО НАСТРОЙКЕ:
1. Выполните обновление вспомогательной службы napsrv.exe с помощью
инсталлятора БД ms_inst.exe. Порядок действий подробно рассмотрен в п. 2.4.5
Документа "Система Галактика ERP. Платформа MS SQL Server. Инструкция по установке"
2. Запустите проверку целостности БД с опцией
"Проверка корректности триггеров" (ChkBase.Triggers=On).
ms70drv
Краткое описание :
Rumtime 216 при расчете ЗП после установки обновлений от 31 августаОписание :
MS SQLЧто измененно :
MSSQL
----- ПРОЯВЛЕНИЕ ПРОБЛЕМЫ -----
Утечка динамической памяти в механизме кэширования подзапросов драйвера БД и, как следствие, нарушение работы кэша.
Как измененно :
Исправлено.
ms70drv
Краткое описание :
Сделать процедуру выгрузки из таблицы в памяти во временную таблицу DSQL, использующую BULK INSERT для ускорения вставкиОписание :
Прямой SQLЧто измененно :
DSQL
----- СУТЬ ПРЕДЛОЖЕНИЯ -----
Сделать процедуру выгрузки из логической таблицы во временную таблицу DSQL, использующую BULK INSERT для ускорения вставки.
Как измененно :
Метод логической таблицы
function sqlFlushIntoTmp(iTable: integer; tableName: string; flags : word): word;
iTable -- номер узла в ЛТ, из которого копировать
tableName -- имя временной таблицы DSQL
flags:
* FIT_Create -- создать временную таблицу, совпадающую полями c узлом, но без индексов и реляций; если была другая временная таблица с таким именем, она будет удалена (аналогично sqlCreateTmpTable)
* FIT_Truncate -- очистить целевую таблицу перед вставкой
* FIT_ByName -- связывать поля по именам, а не по порядку. Имеет смысл и совместно с FIT_Create, т.к. некоторые поля исходного узла могут отсутствовать в выборке ЛТ, в этом случае сопоставление по номерам даже с клоном может быть некорректным.
Возвращает код ошибки, в частности может вернуть tsFileNotFound, если нет временной таблицы с данным именем, tsInvalidOperation, если операция не поддерживается на данной платформе, tsDuplicateKey, если нарушено уникальное ограничение в целевой таблице (в последнем случае полный откат вставки не гарантируется)
Ещё особенности:
* Не работает на платформе Pervasive (возвращает tsInvalidOperation)
* На работу влияет параметр Lot.ImportBatchRowCount
* Ограничения и фильтры не снимаются с узла! Происходит пробежка в текущих ограничениях и в текущем порядке. Если ограничения не нужны, снимите их вручную. После операции позиция в узле не восстанавливается.
* В режиме FIT_Create создаёт таблицу с опцией ctmDynamicIndex, что позволяет добавить индексы потом.
* Целевая таблица должна быть создана через Атлантис, иначе программа не найдёт информацию о её колонках.