Mapping to SAS Constructs

In OLE DB, a rowset is a type of cursor over a table that consists of rows and columns. The intersection of each row and column identifies a cell of data. Every cell in a specific column is of the same data type. The OLE DB concept of a table corresponds directly to the SAS data set.
A data set consists of variables and observations. A variable defines a cell of data in an observation. Variables are like columns, and observations are like rows. In fact, these OLE DB terms and SAS terms can be used interchangeably.
The following table compares the members of the DBCOLUMNINFO structure with the COLUMNS schema rowset columns and describes how they all correspond to SAS constructs:
DBCOLUMNINFO Structure Members Compared with COLUMNS Schema Rowset Columns and the Corresponding SAS Constructs
DBCOLUMNINFO Member
COLUMNS Schema Rowset Column
SAS Data Model
Comments
pwszName
columnid
COLUMN_NAME
variable name
pTypeInfo
not available
not applicable
Reserved by Microsoft for future use
iOrdinal
ORDINAL_POSITION
variable number
dwFlags
not applicable
not applicable
ulColumnSize
CHARACTER_MAXIMUM_LENGTH and CHARACTER_OCTET_LENGTH
variable length
Defines the maximum length of this column/variable
wType
DATA_TYPE
variable type
When accessing Unicode data sets, character variables are mapped to DBTYPE__WSTR.
When accessing data sets that are not Unicode, character variables are mapped to DBTYPE_STR.
Numeric variables are mapped to DBTYPE_R8 for data sets in all encodings.
bPrecision
NUMERIC_PRECISION
not applicable
bScale
not applicable
not applicable
not available
DESCRIPTION
variable label
not available
IS_NULLABLE
not available
Indicates that a cell in this column could be set to "missing"
Members of the DBCOLUMINFO structure and columns in the COLUMNS schema rowset that are not represented in this table either do not map to SAS constructs and are not supported, or they do not map directly to SAS column metadata.