Доброго времени суток, уважаемые гуру.
Есть задачка при импорте из Экселя через АДО проставлять в этом файлике некие данные. Как это можно сделать? И можно ли вообще? Импорт идет без проблем, но при вызове строки
this.setDataByIdx(#itemId, "код номенклатуры"); вылазиит ошибка
X++:
protected anytype setDataByIdx(int _idx, anytype _value)
{
return CCADOFields.itemIdx(_idx).setValue(_value);
}
Метод "value" в COM-объекте класса "Field" возвратил код ошибки 0x800A0CB3 (<неизвестно>), который означает: Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
Как то можно сделать, чтобы recordset поддерживал обновление?
Или где можно выставить нужный selected locktype? Нашел параметры метода open:
X++:
connection.open(connectionString,
COMArgument::NoValue,
COMArgument::NoValue,// lock type
options);
при проставлении любого значения в этот параметр из макроса CCADO:
X++:
//---- LockTypeEnum Values ----
#define.adLockReadOnly( 1 )
#define.adLockPessimistic( 2 )
#define.adLockOptimistic( 3 )
#define.adLockBatchOptimistic( 4 )
валится другая ошибка:
Ошибка Сообщение (15:43:00) Метод "open" в COM-объекте класса "ADODB.Connection" возвратил код ошибки 0x80040E4D (<неизвестно>), который означает: Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.
Ошибка Сообщение (15:43:00) Метод "close" в COM-объекте класса "ADODB.Connection" возвратил код ошибки 0x800A0E78 (<неизвестно>), который означает: Operation is not allowed when the object is closed.
Что то с доступом?
Запутался напрочь
Заранее спасибо!