Subject Re: [IBO] Fields[xx].value - unidentifyed type: 14
Author Geoff Worboys
Helen,

> >In other words, variant of type 14 is longlong, I mean INT64.
>
> Are the variant types documented anywhere?

The type value is refering to the VType field of the Variant record
(so we are talking VCL not Interbase). The datatypes truly supported
by Variant (OLE implementation) can be found in the online help about
variants. The closest the VCL gets to documenting its internal
extensions to variant is inside ActiveX.pas (search for VT_DECIMAL).

I am presuming that Borland provide internal support for certain
conversions of their extended types but they have not been
comprehensive with this support. So the difficulty is that various
third party implementations make invalid assumptions and call Variant
processing functions that do not support the type extensions.

I think I posted some time ago about another problem related to
Variant. The VCL lets much of the Variant processing go through to MS
supplied functions - which includes the translation of date and
numeric values into strings and back again, using operating system
settings. This means that you cannot use the global VCL values to
control the formatting of numbers and dates through variants.

I guess the moral of the story is to be very careful when using
Variant.


We could write some additional translation functions (I already have
one for the number/date to string problem), but this will not help
with third party libraries.

Another alternative would be to translate unsupported field types into
strings (where possible), instead of following the VCL example of
using VCL specific type extensions. At least that way we may avoid
the worst of the problems.

Geoff Worboys
Telesis Computing