Conversions Involving DBTYPE_NUMERIC or DBTYPE_DECIMAL

When retrieving data from a DBTYPE_NUMERIC or DBTYPE_DECIMAL structure, the provider uses the maximum precision and scale stored in that structure. When storing data in a DBTYPE_NUMERIC or DBTYPE_DECIMAL structure, the provider uses the maximum precision and scale in the metadata for that structure. For consumer structures, these are in the binding structure. For provider structures, these are in the DBCOLUMNINFO structure returned by IColumnsInfo::GetColumnInfo or the DBPARAMINFO structure returned by ICommandWithParameters::GetParameterInfo.

The following table shows the maximum precision and scale used by the provider when accessing data in a DBTYPE_NUMERIC or DBTYPE_DECIMAL structure in the consumer's buffer.


Consumer structure
Getting or
setting data


Maximum precision


Scale
DBTYPE_NUMERIC getting precision element of DBTYPE_NUMERIC structure scale element of DBTYPE_NUMERIC structure
DBTYPE_NUMERIC setting bPrecision element of DBBINDING structure bScale element of DBBINDING structure
DBTYPE_VARNUMERIC getting precision element of DB_VARNUMERIC structure scale element of DB_VARNUMERIC structure
DBTYPE_VARNUMERIC setting bPrecision element of DBBINDING structure bScale element of DBBINDING structure
DBTYPE_DECIMAL getting 28 scale element of DBTYPE_DECIMAL structure
DBTYPE_DECIMAL setting 28 bScale element of DBBINDING structure

The following table shows the maximum precision and scale used by the provider when accessing data in a DBTYPE_NUMERIC or DBTYPE_DECIMAL structure in the provider.


Provider structure
Getting or
setting data


Maximum precision


Scale
DBTYPE_NUMERIC getting precision element of DBTYPE_NUMERIC structure scale element of DBTYPE_NUMERIC structure
DBTYPE_NUMERIC setting bPrecision element of DBCOLUMNINFO or DBPARAMINFO structure bScale element of DBCOLUMNINFO or DBPARAMINFO structure
DBTYPE_VARNUMERIC getting precision element of DB_VARNUMERIC structure scale element of DB_VARNUMERIC structure
DBTYPE_VARNUMERIC setting bPrecision element of DBCOLUMNINFO or DBPARAMINFO structure bScale element of DBCOLUMNINFO or DBPARAMINFO structure
DBTYPE_DECIMAL getting 28 scale element of DBTYPE_DECIMAL structure
DBTYPE_DECIMAL setting 28 bScale element of DBCOLUMNINFO or DBPARAMINFO structure