Показать сообщение отдельно
Старый 23.07.2014, 15:43   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Импорт из Эксель через АДО и обновление ячеек Экселя
Доброго времени суток, уважаемые гуру.

Есть задачка при импорте из Экселя через АДО проставлять в этом файлике некие данные. Как это можно сделать? И можно ли вообще? Импорт идет без проблем, но при вызове строки

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.

Что то с доступом?

Запутался напрочь

Заранее спасибо!