3.1.4.2.2.1.3.4.1 Columns
The DBSCHEMA_PROVIDER_TYPES rowset contains the following columns.
Name |
Type |
Restriction |
Description |
---|---|---|---|
TYPE_NAME |
xsd:string |
|
The server-specific data type name.<203> |
DATA_TYPE |
xsd:unsignedShort |
Yes |
This enumeration is the same as LEVEL_DBTYPE for MDSCHEMA_LEVELS. (See section 3.1.4.2.2.1.3.8) |
COLUMN_SIZE |
xsd:unsignedInt |
|
The length of a non-numeric column or parameter that refers to either the maximum or the length defined for this type by the server. For character data, this is the maximum or defined length in characters. For DateTime data types, this is the length of the string representation (assuming the maximum allowed precision of the fractional second component). If the data type is numeric, this is the upper bound on the maximum precision of the data type. |
LITERAL_PREFIX |
xsd:string |
|
The character or characters used to prefix a literal of this type in a text command. |
LITERAL_SUFFIX |
xsd:string |
|
The character or characters used to suffix a literal of this type in a text command. |
CREATE_PARAMS |
xsd:string |
|
The creation parameters specified by the consumer when creating a column of this data type. For example, the SQL DECIMAL data type needs a precision and a scale. In this case, the creation parameters might be the string "precision,scale". In a text command to create a DECIMAL column with a precision of 10 and a scale of 2, the value of the TYPE_NAME column might be DECIMAL(), and the complete type specification would be DECIMAL(10,2). The creation parameters appear as a comma-separated list of values, in the order they are to be supplied and with no surrounding parentheses. If a creation parameter is length, maximum length, precision, scale, seed, or increment, use "length", "max length", "precision", "scale", "seed", and "increment", respectively. If the creation parameter is some other value, the server determines what text is to be used to describe the creation parameter. If the data type requires creation parameters, "()" usually appears in the type name. This indicates the position at which to insert the creation parameters. If the type name does not include "()", the creation parameters are enclosed in parentheses and appended to the data type name. |
IS_NULLABLE |
xsd:boolean |
|
A Boolean that indicates whether the data type is nullable.
§ NULL indicates that it is not known whether the data type is nullable.<204> |
CASE_SENSITIVE |
xsd:boolean |
|
A Boolean that indicates whether the data type is a character type and case-sensitive.
|
SEARCHABLE |
xsd:unsignedInt |
|
An integer indicating how the data type can be used in searches if the server supports ICommandText; otherwise, NULL. If the server supports ICommandText, then this column can have the following values:
|
UNSIGNED_ATTRIBUTE |
xsd:boolean |
|
A Boolean that indicates whether the data type is unsigned.
|
FIXED_PREC_SCALE |
xsd:boolean |
|
A Boolean that indicates whether the data type has a fixed precision and scale.
|
AUTO_UNIQUE_VALUE |
xsd:boolean |
|
A Boolean that indicates whether the data type can be autoincrementing.
|
LOCAL_TYPE_NAME |
xsd:string |
|
The localized version of TYPE_NAME. NULL is returned if a localized name is not supported by the server. |
MINIMUM_SCALE |
xsd:short |
|
If the type indicator is DBTYPE_VARNUMERIC, DBTYPE_DECIMAL, or DBTYPE_NUMERIC, this column specifies the minimum number of digits allowed to the right of the decimal point. Otherwise, it is NULL. |
MAXIMUM_SCALE |
xsd:short |
|
If the type indicator is DBTYPE_VARNUMERIC, DBTYPE_DECIMAL, or DBTYPE_NUMERIC, this column specifies the maximum number of digits allowed to the right of the decimal point. Otherwise, it is NULL. |
GUID |
uuid |
|
(Reserved for future use.) The GUID of the type, if the type is described in a type library. Otherwise, it is NULL. |
TYPELIB |
xsd:string |
|
The type library that contains the description of the type, if the type is described in a type library. Otherwise, it is NULL. |
VERSION |
xsd:string |
|
The version of the type definition. Servers might request to create different versions of type definitions. Different servers might use different versioning schemes, such as a timestamp or a number (Integer or Float). NULL if not supported. |
IS_LONG |
xsd:boolean |
|
A Boolean that indicates whether the data type is a binary large object (BLOB) and has very long data.
This column value determines the setting of the DBCOLUMNFLAGS_ISLONG flag that is returned by GetColumnInfo in IColumnsInfo and the setting of the DBCOLUMNFLAGS_ISLONG flag that is returned by GetParameterInfo in ICommandWithParameters. |
BEST_MATCH |
xsd:boolean |
Yes<209> |
A Boolean that indicates whether the data type is the best match. A value of true indicates that the data type is the best match between all data types in the data store and the OLE DB data type that is indicated by the value in the DATA_TYPE column. For more information, see [MSDN-OLEDB]. A value of false indicates that the data type is not the best match. For each set of rows in which the value of the DATA_TYPE column is the same, the BEST_MATCH column is set to true in only one row.<210> |
IS_FIXEDLENGTH |
xsd:boolean |
|
A Boolean that indicates whether the column is fixed in length. A value of true indicates that columns of this type that are created by the DDL will be of fixed length. A value of false indicates that columns of this type that are created by the DDL will be of variable length. If the field is NULL, it is not known whether the server will map this field with a fixed-length or variable-length column. |
The rowset is not sorted.
The response has the following definition.
-
<xsd:element name="root"> <xsd:complexType> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="row" type="row" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:simpleType name="uuid"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}" /> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="row"> <xsd:sequence> <xsd:element sql:field="TYPE_NAME" name="TYPE_NAME" type="xsd:string" minOccurs="0" /> <xsd:element sql:field="DATA_TYPE" name="DATA_TYPE" type="xsd:unsignedShort" minOccurs="0" /> <xsd:element sql:field="COLUMN_SIZE" name="COLUMN_SIZE" type="xsd:unsignedInt" minOccurs="0" /> <xsd:element sql:field="LITERAL_PREFIX" name="LITERAL_PREFIX" type="xsd:string" minOccurs="0" /> <xsd:element sql:field="LITERAL_SUFFIX" name="LITERAL_SUFFIX" type="xsd:string" minOccurs="0" /> <xsd:element sql:field="CREATE_PARAMS" name="CREATE_PARAMS" type="xsd:string" minOccurs="0" /> <xsd:element sql:field="IS_NULLABLE" name="IS_NULLABLE" type="xsd:boolean" minOccurs="0" /> <xsd:element sql:field="CASE_SENSITIVE" name="CASE_SENSITIVE" type="xsd:boolean" minOccurs="0" /> <xsd:element sql:field="SEARCHABLE" name="SEARCHABLE" type="xsd:unsignedInt" minOccurs="0" /> <xsd:element sql:field="UNSIGNED_ATTRIBUTE" name="UNSIGNED_ATTRIBUTE" type="xsd:boolean" minOccurs="0" /> <xsd:element sql:field="FIXED_PREC_SCALE" name="FIXED_PREC_SCALE" type="xsd:boolean" minOccurs="0" /> <xsd:element sql:field="AUTO_UNIQUE_VALUE" name="AUTO_UNIQUE_VALUE" type="xsd:boolean" minOccurs="0" /> <xsd:element sql:field="LOCAL_TYPE_NAME" name="LOCAL_TYPE_NAME" type="xsd:string" minOccurs="0" /> <xsd:element sql:field="MINIMUM_SCALE" name="MINIMUM_SCALE" type="xsd:short" minOccurs="0" /> <xsd:element sql:field="MAXIMUM_SCALE" name="MAXIMUM_SCALE" type="xsd:short" minOccurs="0" /> <xsd:element sql:field="GUID" name="GUID" type="uuid" minOccurs="0" /> <xsd:element sql:field="TYPELIB" name="TYPELIB" type="xsd:string" minOccurs="0" /> <xsd:element sql:field="VERSION" name="VERSION" type="xsd:string" minOccurs="0" /> <xsd:element sql:field="IS_LONG" name="IS_LONG" type="xsd:boolean" minOccurs="0" /> <xsd:element sql:field="BEST_MATCH" name="BEST_MATCH" type="xsd:boolean" minOccurs="0" /> <xsd:element sql:field="IS_FIXEDLENGTH" name="IS_FIXEDLENGTH" type="xsd:boolean" minOccurs="0" /> </xsd:sequence> </xsd:complexType>