IConvertType::CanConvert

OLE DB Programmer's Reference

Gives information about the availability of type conversions on a command, a rowset, or a row.

HRESULT CanConvert (    DBTYPE           wFromType,    DBTYPE           wToType,    DBCONVERTFLAGS   dwConvertFlags);

Parameters

wFromType
[in]
The source type of the conversion.
wToType
[in]
The target type of the conversion.
dwConvertFlags
[in]
Whether IConvertType::CanConvert is to determine if the conversion is supported on the rowset or on the command. These flags have the following meaning:

Value Description
DBCONVERTFLAGS_COLUMN IConvertType::CanConvert is to determine whether the conversion is supported when setting, getting, finding, filtering, or seeking on columns of the rowset or row. This flag is mutually exclusive with DBCONVERTFLAGS_PARAMETER.
DBCONVERTFLAGS_ISFIXEDLENGTH IConvertType::CanConvert is to determine whether a fixed-length value of the DBTYPE specified in the dwFromType can be converted to the DBTYPE specified in wToType. This flag can coexist with either DBCONVERTFLAGS_COLUMN or DBCONVERTFLAGS_PARAMETER. This flag is supported only by OLE DB version 2.0 or later providers.
DBCONVERTFLAGS_ISLONG IConvertType::CanConvert is to determine whether the long version of the DBTYPE specified in the dwFromType can be converted to the DBTYPE specified in wToType. This flag is valid only when used in conjunction with a variable-length DBTYPE. This flag can coexist with either DBCONVERTFLAGS_COLUMN or DBCONVERTFLAGS_PARAMETER. This flag is supported only by OLE DB version 2.0 or later providers.
DBCONVERTFLAGS_PARAMETER IConvertType::CanConvert is to determine whether the conversion is supported on the parameters of the command.
DBCONVERTFLAGS_FROMVARIANT The DBTYPE specified in the wFromType represents a type within a VARIANT. IConvertType::CanConvert returns whether the conversion from a VARIANT of that type to the type specified in wToType is allowed. For providers that support PROPVARIANT, this applies to conversions from PROPVARIANT as well.

Return Code

S_OK
The requested conversion is available.
S_FALSE
The requested conversion is not available.

wFromType or wToType was not a valid type for the provider, and the provider was a version 2.0 or later provider.

E_FAIL
A provider-specific error occurred.
E_INVALIDARG
The provider was an OLE DB 1.x provider, and wFromType or wToType was not a valid type indicator for OLE DB 1.x.
DB_E_BADCONVERTFLAG
dwConvert flags was invalid.

The method was called on a command, and its flags inquired about a conversion on a rowset but the property DBPROP_ROWSETCONVERSIONSONCOMMAND was VARIANT_FALSE.

The DBCONVERTFLAG_PARAMETER bit was set, and IConvertType::CanConvert was called on a rowset or row.

The DBCONVERTFLAGS_PARAMETER bit was set, and IConvertType::CanConvert was called on a command (whether from a provider or not) that does not support parameters.

DBCONVERTFLAGS_ISLONG was specified, and the DBTYPE specified in dwFromType was not a variable-length DBTYPE.

DBCONVERTFLAGS_ISLONG was specified, and the provider was an OLE DB 1.x provider.

DBCONVERTFLAGS_ISFIXEDLENGTH was specified, and the provider was an OLE DB 1.x provider.

DBCONVERTFLAGS_COLUMN and DBCONVERTFLAGS_PARAMETER were both specified. (These two flags are mutually exclusive.)

DB_E_BADTYPE
DBCONVERTFLAGS_FROMVARIANT was specified, and the type specified in wFromType was not a VARIANT type.

Comments

IConvertType::CanConvert can be called from a command, a rowset, or a row. The consumer can call it on a command to inquire about conversions supported by that command and on a rowset or row to inquire about conversions supported by that rowset or row. The consumer might be able to call it on a command to inquire about conversions supported on rowsets or rows generated from that command; whether this is supported is specified by the DBPROP_ROWSETCONVERSIONSONCOMMAND property.

Converting a value to or from DBTYPE_IUNKNOWN is different than requesting a stream over the value, even though streams are bound using DBTYPE_IUNKNOWN. Providers typically don't support conversion of character or binary values to and from DBTYPE_IUNKNOWN, even though they may support binding such objects as streams.

See Also

IAccessor::CreateAccessor

1998-2001 Microsoft Corporation. All rights reserved.



Microsoft Ole Db 2.0 Programmer's Reference and Data Access SDK
Microsoft OLE DB 2.0 Programmers Reference and Data Access SDK (Microsoft Professional Editions)
ISBN: 0735605904
EAN: 2147483647
Year: 1998
Pages: 1083

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net