Datum-/Uhrzeit- und Schemarowsets
Dieses Thema enthält Informationen über das COLUMNS-Rowset und das PROCEDURE_PARAMETERS-Rowset. Diese Informationen beziehen sich auf die OLE DB-Verbesserungen in SQL Server 2008 in Bezug auf Datum und Uhrzeit.
COLUMNS-Rowset
Die folgenden Spaltenwerte werden für Datums-/Uhrzeittypen zurückgegeben:
Spaltentyp |
DATA_TYPE |
COLUMN_FLAGS, DBCOLUMFLAGS_SS_ISVARIABLESCALE |
DATETIME_PRECISION |
---|---|---|---|
date |
DBTYPE_DBDATE |
Clear |
0 |
time |
DBTYPE_DBTIME2 |
Festgelegt |
0..7 |
smalldatetime |
DBTYPE_DBTIMESTAMP |
Leer |
0 |
datetime |
DBTYPE_DBTIMESTAMP |
Clear |
3 |
datetime2 |
DBTYPE_DBTIMESTAMP |
Set |
0..7 |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
Set |
0..7 |
In COLUMN_FLAGS hat DBCOLUMNFLAGS_ISFIXEDLENGTH für Datum-/Uhrzeittypen stets den Wert TRUE, und die folgenden Flags haben immer den Wert FALSE:
DBCOLUMNFLAGS_CACHEDEFERRED
DBCOLUMNFLAGS_ISBOOKMARK
DBCOLUMNFLAGS_ISCHAPTER
DBCOLUMNFLAGS_ISLONG
DBCOLUMNFLAGS_ISROWID
DBCOLUMNFLAGS_ISROWVER
DBCOLUMNFLAGS_MAYDEFER
Die übrigen Flags (DBCOLUMNFLAGS_ISNULLABLE, DBCOLUMNFLAGS_MAYBENULL, DBCOLUMNFLAGS_WRITE und DBCOLUMNFLAGS_WRITEUNKNOWN) können festgelegt werden. Dies hängt von der Definition der Spalte ab.
Das neue DBCOLUMNFLAGS_SS_ISVARIABLESCALE-Flag wird in COLUMN_FLAGS bereitgestellt, damit eine Anwendung den Servertyp der Spalten bestimmen kann, wobei DATA_TYPE = DBTYPE_DBTIMESTAMP ist. DATETIME_PRECISION muss ebenfalls verwendet werden, um den Servertyp zu identifizieren.
DBCOLUMNFLAGS_SS_ISVARIABLESCALE ist nur gültig, wenn eine Verbindung mit einem SQL Server 2008-Server (oder höher) besteht. DBCOLUMNFLAGS_SS_ISFIXEDSCALE ist nicht definiert, wenn eine Verbindung mit einem Downlevelserver besteht.
PROCEDURE_PARAMETERS-Rowset
DATA_TYPE enthält die gleichen Werte wie das COLUMNS-Schemarowset, und TYPE_NAME enthält den Servertyp.
Die neue Spalte SS_DATETIME_PRECISION wurde hinzugefügt, um die Genauigkeit des Typs wie in der DATETIME_PRECISION-Spalte zurückzugeben, ähnlich wie beim COLUMNS-Rowset.
PROVIDER_TYPES-Rowset
Die folgenden Zeilen werden für Datum-/Uhrzeittypen zurückgegeben:
Typ -> Spalte |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
---|---|---|---|---|---|---|
TYPE_NAME |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
DATA_TYPE |
DBTYPE_DBDATE |
DBTYPE_DBTIME2 |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMPOFFSET |
COLUMN_SIZE |
10 |
16 |
16 |
23 |
27 |
34 |
LITERAL_PREFIX |
‘ |
‘ |
‘ |
‘ |
‘ |
‘ |
LITERAL_SUFFIX |
‘ |
‘ |
‘ |
‘ |
‘ |
‘ |
CREATE_PARAMS |
NULL |
scale |
NULL |
NULL |
scale |
scale |
IS_NULLABLE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
CASE_SENSITIVE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
UNSIGNED_ATTRIBUTE |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
FIXED_PREC_SCALE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
AUTO_UNIQUE_VALUE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
LOCAL_TYPE_NAME |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
MINIMUM_SCALE |
NULL |
0 |
NULL |
NULL |
0 |
0 |
MAXIMUM_SCALE |
NULL |
7 |
NULL |
NULL |
7 |
7 |
GUID |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
TYPELIB |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
VERSION |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
IS_LONG |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
VARIANT_FALSE |
BEST_MATCH |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE, außer wenn eine der folgenden Aussagen zutrifft:
|
VARIANT_TRUE, außer wenn eine der folgenden Aussagen zutrifft:
|
VARIANT_TRUE |
IS_FIXEDLENGTH |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
VARIANT_TRUE |
OLE DB definiert lediglich MINIMUM_SCALE und MAXIMUM_SCALE für numerische und Dezimaltypen, weshalb die Verwendung dieser Spalten für time, datetime2 und datetimeoffset durch SQL Server Native Client nicht standardmäßig ist.