Цитата:
Сообщение от
Gustav
Ох, ну, славно! Хотя по идее должно было работать и с полной строкой 19 (это я так... чисто эвристически делал предположение).
Я тоже думал что должно работать, однако ж не работает.
Цитата:
Сообщение от
Gustav
Всё-таки не совсем понятно, почему даже на пустом Excel происходило... Как-то у вас дата, похоже, крепко хваталась со второй колонки и не "отпускалась" до конца строки. Напоминает поведение типа anytype, когда он принимает тип первого присваивания...
А покажите цикл заполнения рекордсета? (на радостях)
X++:
. . .
rstAxa.AddNew();
for(i=1; i<=arrFields.lastIndex(); i++)
{
cv = this.getValueVariant(conpeek(con, i));
fld = flds.Item(i-1);
fld.Value(cv);
}
rstAxa.Update();
. . .
X++:
protected COMVariant getValueVariant(anytype _value)
{
COMVariant ret;
;
switch(typeof(_value))
{
case Types::Date :
ret = COMVariant::createFromDateAndTime(_value, 0);
break;
case Types::Real :
ret = COMVariant::createFromReal(_value);
break;
case Types::Integer :
ret = COMVariant::createFromInt( _value);
break;
case Types::String :
case Types::RString :
case Types::VarString :
ret = COMVariant::createFromStr( _value);
break;
default :
callStack2infolog();
throw error(strfmt(@"%1(): Не знаю, как преобразовать значение из типа %2 в %3",
funcname(), typeof(_value), classstr(COMVariant)));
}
return ret;
}