Показать сообщение отдельно
Старый 21.11.2012, 16:43   #1  
McArrow is offline
McArrow
Участник
 
45 / 38 (2) +++
Регистрация: 18.05.2009
Падает клиент при записи значения поля через ADO на пакетном сервере
Здравствуйте, коллеги.

Проблема:
Имеется класс - наследник 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
Вложения
Тип файла: xpo Class_MDL_ADOFieldCrashBatch.xpo (5.4 Кб, 412 просмотров)

Последний раз редактировалось McArrow; 21.11.2012 в 16:59.