Здравствуйте, коллеги.
Проблема:
Имеется класс - наследник RunBaseBatch, который хочется пускать на сервере пакетной обработки. В нём присутствует код, который через ADO пишет данные в базу MS SQL. При запуске напрямую всё работает как надо. При запуске через обработчик пакетных заданий валится клиент, на котором этот обработчик запущен.
Код, вызывающий ошибку:
X++:
recordSet = adoRecordSet.recordSet();
fields = recordSet.Fields();
field = fields.Item('TRANSDATE');
variant = ComVariant::createFromDateAndTime(transDate, 0);
field.value(variant); // Здесь падает клиент, если на нём запущена обработка пакетных заданий
Тестовый класс, который воспроизводит эту ошибку, имеется во вложении. В нём также имеется метод runInMemory, который имитирует ситуацию с ADO рекордсетом в памяти, на нём такое поведение клиента не воспроизводится.
Используется DAX 4.0 SP2
Версия клиента (kernel version): 4.0.2501.116