Parametr i metadane zestawu zestaw wierszy
Ten temat zawiera informacje na temat typów i typ elementów, związane z datą OLE DB i czas rozszerzenia dla SQL Server 2008.
Struktura DBBINDING
ICommandWithParameters::GetParameterInfo
ICommandWithParameters::SetParameterInfo
IColumnsRowset::GetColumnsRowset
IColumnsInfo::GetColumnInfo
ICommandWithParameters::GetParameterInfo
Następujące informacje są zwracane w strukturze DBPARAMINFO za pośrednictwem prgParamInfo:
Typ parametru |
wType |
ulParamSize |
bPrecision |
bScale |
dwFlags DBPARAMFLAGS_SS_ISVARIABLESCALE |
|---|---|---|---|---|---|
data |
DBTYPE_DBDATE |
6 |
10 |
0 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
godzina |
DBTYPE_DBTIME2 |
10 |
8, 10..16 |
0..7 |
Zestaw |
Smalldatetime |
DBTYPE_DBTIMESTAMP |
16 |
16 |
0 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
data_i_godzina |
DBTYPE_DBTIMESTAMP |
16 |
23 |
3 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
datetime2 |
DBTYPE_DBTIMESTAMP |
16 |
19,21..27 |
0..7 |
Zestaw |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
26,28..34 |
0..7 |
Zestaw |
Należy zauważyć, że w niektórych przypadkach zakresów wartości nie są ciągłe.Jest to spowodowane dodanie przecinek dziesiętny podczas dokładność ułamkowa jest większa od zera.
DBPARAMFLAGS_SS_ISVARIABLESCALE jest prawidłowa tylko wtedy, gdy połączenie, SQL Server 2008 serwer. Nigdy nie jest DBPARAMFLAGS_SS_ISVARIABLESCALE zestaw podłączenia do serwerów niskiego poziom.
Typy parametrów domyślnych ani żadnego innego rodzaju i ICommandWithParameters::SetParameterInfo
Informacje zawarte w strukturze DBPARAMBINDINFO musi spełniać następujące warunki:
pwszDataSourceType (specyficzne dla dostawca) |
pwszDataSourceType (OLE DB rodzajowe) |
ulParamSize |
bScale |
|---|---|---|---|
|
DBTYPE_DATE |
6 |
Ignorowany |
data |
DBTYPE_DBDATE |
6 |
Ignorowany |
|
DBTYPE_DBTIME |
10 |
Ignorowany |
godzina |
DBTYPE_DBTIME2 |
10 |
0..7 |
Smalldatetime |
|
16 |
Ignorowany |
data_i_godzina |
|
16 |
Ignorowany |
datetime2 lub DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
16 |
0..7 |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
0..7 |
The bPrecision parameter is ignored.
"DBPARAMFLAGS_SS_ISVARIABLESCALE" jest ignorowane podczas wysyłania danych do serwera.Aplikacje można wymusić stosowanie typów starszych strumienia danych tabelarycznych (TDS) przy użyciu nazwy typu specyficznym dla dostawca „datetime"i"smalldatetime". When connected to SQL Server 2008 (or later) servers, "datetime2" format will be used and an implicit server conversion will occur, if necessary, when the type name is "datetime2" or "DBTYPE_DBTIMESTAMP".bScale is ignored if the provider specific type names "datetime" or "smalldatetime" are used.W przeciwnym razie appications musi zapewnić, że bScale jest zestaw poprawnie. Aplikacje zainstalowane poprzez uaktualnienie systemu MDAC i SQL Server Macierzysta klient z SQL Server 2005Użycie tego "DBTYPE_DBTIMESTAMP" powiedzie się, jeśli nie zostanie ustawiony bScale poprawnie. Po podłączeniu do wystąpienia serwera wcześniej niż SQL Server 2008, bScalewartość inną niż 0 lub 3 "DBTYPE_DBTIMESTAMP" jest błąd i zostanie zwrócony E_FAIL.
Kiedy ICommandWithParameters::SetParameterInfo nie jest wywoływana, imples dostawca, rodzaj serwera z typ wiązanie, jak określono w IAccessor::CreateAccessor w następujący sposób:
Typ wiązanie |
pwszDataSourceType (specyficzne dla dostawca) |
|---|---|
DBTYPE_DATE |
datetime2(0) |
DBTYPE_DBDATE |
data |
DBTYPE_DBTIME |
czas(0) |
DBTYPE_DBTIME2 |
czas(7) |
DBTYPE_DBTIMESTAMP |
datetime2(7) |
DBTYPE_DBTIMESTAMPOFFSET |
datetimeoffset(7) |
IColumnsRowset::GetColumnsRowset
IColumnsRowset::GetColumnsRowset zwraca następujące kolumny:
Typ kolumna |
DBCOLUMN_TYPE |
DBCOLUM_COLUMNSIZE |
DBCOLUMN_PRECISION |
DBCOLUMN_SCALE DBCOLUMN_DATETIMEPRECISION |
DBCOLUMN_FLAGS DBCOLUMNFLAGS_SS_ISVARIABLESCALE |
|---|---|---|---|---|---|
data |
DBTYPE_DBDATE |
6 |
10 |
0 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
godzina |
DBTYPE_DBTIME2 |
10 |
8, 10..16 |
0..7 |
Zestaw |
Smalldatetime |
DBTYPE_DBTIMESTAMP |
16 |
16 |
0 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
data_i_godzina |
DBTYPE_DBTIMESTAMP |
16 |
23 |
3 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
datetime2 |
DBTYPE_DBTIMESTAMP |
16 |
19, 21..27 |
0..7 |
Zestaw |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
26, 28..34 |
0..7 |
Zestaw |
W DBCOLUMN_FLAGS DBCOLUMNFLAGS_ISFIXEDLENGTH zawsze ma wartość true dla typu Data/Godzina i zawsze są fałszywe następujące flagi:
DBCOLUMNFLAGS_CACHEDEFERRED
DBCOLUMNFLAGS_ISBOOKMARK
DBCOLUMNFLAGS_ISCHAPTER
DBCOLUMNFLAGS_ISLONG
DBCOLUMNFLAGS_ISROWID
DBCOLUMNFLAGS_ISROWVER
DBCOLUMNFLAGS_MAYDEFER
Pozostałe flagi (DBCOLUMNFLAGS_ISNULLABLE DBCOLUMNFLAGS_MAYBENULL, DBCOLUMNFLAGS_WRITE i DBCOLUMNFLAGS_WRITEUNKNOWN) zestaw w zależności od sposobu zdefiniowania kolumna i rzeczywiste kwerendy.
Nowe flagi DBCOLUMNFLAGS_SS_ISVARIABLESCALE znajduje się w DBCOLUMN_FLAGS, aby umożliwić aplikacji w celu określenia typu serwera kolumn, gdzie DBCOLUMN_TYPE jest DBTYPE_DBTIMESTAMP.DBCOLUMN_SCALE lub DBCOLUMN_DATETIMEPRECISION muszą być również używane do identyfikowania typu serwera.
DBCOLUMNFLAGS_SS_ISVARIABLESCALE jest prawidłowa tylko wtedy, gdy połączenie, SQL Server 2008 serwer. DBCOLUMNFLAGS_SS_ISVARIABLESCALE jest niezdefiniowana podłączenia do serwerów niskiego poziom.
IColumnsInfo::GetColumnInfo
Struktura DBCOLUMNINFO zwraca następujące informacje:
Typ parametru |
wType |
ulColumnSize |
bPrecision |
bScale |
dwFlags DBPARAMFLAGS_SS_ISVARIABLESCALE |
|---|---|---|---|---|---|
data |
DBTYPE_DBDATE |
6 |
10 |
0 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
czas(1..7) |
DBTYPE_DBTIME2 |
10 |
8, 10..16 |
0..7 |
Zestaw |
Smalldatetime |
DBTYPE_DBTIMESTAMP |
16 |
16 |
0 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
data_i_godzina |
DBTYPE_DBTIMESTAMP |
16 |
23 |
3 |
Odwołania do urządzenie źródłowe podraportów i dane z ścieżki względne nie są obsługiwane przy użyciu tej metoda. |
datetime2 |
DBTYPE_DBTIMESTAMP |
16 |
19, 21..27 |
0..7 |
Zestaw |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
26, 28..34 |
0..7 |
Zestaw |
W dwFlagsDBCOLUMNFLAGS_ISFIXEDLENGTH zawsze ma wartość true dla typu Data/Godzina i zawsze są fałszywe następujące flagi:
DBCOLUMNFLAGS_CACHEDEFERRED
DBCOLUMNFLAGS_ISBOOKMARK
DBCOLUMNFLAGS_ISCHAPTER
DBCOLUMNFLAGS_ISLONG
DBCOLUMNFLAGS_ISROWID
DBCOLUMNFLAGS_ISROWVER MAYDEFER
zestaw pozostałe flagi (DBCOLUMNFLAGS_ISNULLABLE DBCOLUMNFLAGS_MAYBENULL, DBCOLUMNFLAGS_WRITE i DBCOLUMNFLAGS_WRITEUNKNOWN).
A new flag DBCOLUMNFLAGS_SS_ISVARIABLESCALE is provided in dwFlags to allow an application to determine the server type of columns, where wType is DBTYPE_DBTIMESTAMP.bScale must also be used to identify the server type.