объявите value как anytype. А получайте значение примерно следующим образом
value = this.getValue(adoField.value());
Где
X++:
anytype getValue(COMVariant _value)
{
anytype v;
switch(_value.variantType())
{
case COMVariantType::VT_BOOL:
v = _value.boolean();
break;
case COMVariantType::VT_BSTR:
v = _value.bStr();
break;
case COMVariantType::VT_INT:
v = _value.int();
break;
case COMVariantType::VT_DATE:
v = _value.date();
break;
case COMVariantType::VT_DISPATCH:
v = COM::createFromVariant(_value);
break;
case COMVariantType::VT_I4:
v = _value.int();
break;
case COMVariantType::VT_R8:
v = _value.double();
break;
default:
throw Error(strfmt("Неизвестный тип данных: %1", _value.variantType()));
}
return v;
}
}