В качестве P.S. До кучи в коллекцию. В классе ССADOField метод value содержит шикарный шаблон switch почти на все случаи жизни.
Правда, конкретно Ваш float (VT_R4) упрятан в double, но подправить недолго.
Код:
anytype value()
{
COMVariant value;
value = field.value();
switch (value.variantType())
{
case COMVariantType::VT_I2:
return value.byte();
case COMVariantType::VT_I4:
return value.int();
case COMVariantType::VT_R4, COMVariantType::VT_R8:
return value.double();
case COMVariantType::VT_CY:
return value.currency();
case COMVariantType::VT_DATE:
return value.date();
case COMVariantType::VT_BSTR:
return value.bStr();
case COMVariantType::VT_BOOL:
return value.boolean();
case COMVariantType::VT_DECIMAL:
return value.decimal();
case COMVariantType::VT_I1:
return value.byte();
case COMVariantType::VT_UI1:
return value.uInt();
case COMVariantType::VT_UI2:
return value.uShort();
case COMVariantType::VT_UI4:
return value.uLong();
}
return '';
}