OLE DB defines special row column IDs (DBIDs) that can be used as shortcuts to access the row URL column and the row default stream column.
DBROWCOL_ROWURL is a predefined GUID that designates a column of a row object that contains the URL of the row. The value of DBROWCOL_ROWURL is defined to be {DBGUID_ROWURL, DBKIND_GUID, 0}. The actual DBID of this column is provider-assigned, but DBROWCOL_ROWURL can be used as a shortcut to obtain this column, if it exists. Row objects are not required to have a column that contains the URL of the row, but if a row object has such a column, this DBID can be used to access the column.
The row URL column is defined by the DBCOLUMNINFO structure described in the following table.
| Element | Description |
|---|---|
| pwszName | Provider-specific. |
| pTypeInfo | Reserved for future use. Providers are required to set pTypeInfo to NULL. |
| iOrdinal | Provider-specific. OLE DB does not require the row URL column to have a specific iOrdinal value. Must be nonzero. |
| dwFlags | DBCOLUMNFLAGS_ISROWURL is set. |
| ulColumnSize | Size of the URL. |
| wType | DBTYPE_WCHAR. |
| bPrecision | ~0 (bitwise, the value is not 0; that is, all bits are set to 1). |
| bScale | ~0 (bitwise, the value is not 0; that is, all bits are set to 1). |
| columnid | Provider-specific. |
DBROWCOL_ROWDEFAULTSTREAM is a predefined GUID that designates a column of a row object that contains the default stream of the row. The value of DBROWCOL_DEFAULTSTREAM is defined to be {DBGUID_ROWDEFAULTSTREAM, DBKIND_GUID, 0}. The actual DBID of this column is provider-assigned, but DBROWCOL_DEFAULTSTREAM can be used as a shortcut to obtain the column, if it exists. Row objects are not required to have a default stream column, but if a row has a default stream column, this DBID can be used to access the column. A row can have at most one default stream column.
The default stream column is defined by a DBCOLUMNINFO structure as described in the following table.
| Element | Description |
|---|---|
| pwszName | Provider-specific. |
| pTypeInfo | Reserved for future use. Providers are required to set pTypeInfo to NULL. |
| iOrdinal | Provider-specific. OLE DB does not require the default stream column to have a specific iOrdinal value. Must be nonzero. |
| dwFlags | DBCOLUMNFLAGS_ISDEFAULTSTREAM is set. |
| ulColumnSize | Size of the stream. |
| wType | DBTYPE_IUnknown. |
| bPrecision | ~0 (bitwise, the value is not 0; that is, all bits are set to 1). |
| bScale | ~0 (bitwise, the value is not 0; that is, all bits are set to 1). |
| columnid | Provider-specific. |