Udostępnij za pośrednictwem


Parametr i metadane wierszy

Ten temat zawiera informacje o następujący typ i typ członków, związanych z datą OLE DB i czas ulepszenia.

  • Struktura DBBINDING

  • ICommandWithParameters::GetParameterInfo

  • ICommandWithParameters::SetParameterInfo

  • IColumnsRowset::GetColumnsRowset

  • IColumnsInfo::GetColumnInfo

ICommandWithParameters::GetParameterInfo

Następujące informacje są zwracane w strukturze DBPARAMINFO przez prgParamInfo:

Typ parametru

wType

ulParamSize

bPrecision

bScale

dwFlags

DBPARAMFLAGS_SS_ISVARIABLESCALE

data

DBTYPE_DBDATE

6

10

0

Wyczyść

godzina

DBTYPE_DBTIME2

10

8, 10..16

0..7

Zestaw

smalldatetime

DBTYPE_DBTIMESTAMP

16

16

0

Wyczyść

data_i_godzina

DBTYPE_DBTIMESTAMP

16

23

3

Wyczyść

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 przecinka dziesiętnego po dokładność ułamkowa jest większa od zera.

DBPARAMFLAGS_SS_ISVARIABLESCALE jest prawidłowa tylko po podłączeniu do w SQL Server 2008 (lub nowsze) serwera.Nigdy nie jest DBPARAMFLAGS_SS_ISVARIABLESCALE zestaw po podłączeniu do serwerów niskiego poziomu.

ICommandWithParameters::SetParameterInfo i typy parametrów wprost

Informacje zawarte w strukturze DBPARAMBINDINFO musi spełniać następujące warunki:

pwszDataSourceType

(specyficzne dla dostawca)

pwszDataSourceType

(OLE DB generic)

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

bPrecision Parametr jest ignorowany.

"DBPARAMFLAGS_SS_ISVARIABLESCALE" jest ignorowane podczas wysyłania danych do serwera.Aplikacje można wymusić użycie typów starszych strumienia danych tabelarycznych (TDS) przy użyciu nazw specyficznych dla dostawca typu "datetime"" and "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.Uaktualnienie MDAC aplikacji i SQL Server Native Client z SQL Server 2005 , użyj "dbtype_dbtimestamp" zakończy się niepowodzeniem, jeśli nie zestaw bScale poprawnie.Po podłączeniu do wystąpienia serwera starsze niż SQL Server 2008, bScale wartość inną niż 0 lub 3 z "dbtype_dbtimestamp" jest to błąd, zostanie zwrócony E_FAIL.

Gdy ICommandWithParameters::SetParameterInfo nie jest wywoływana, wpisz imples dostawca serwera z typ powiązanie, jak określono w IAccessor::CreateAccessor następująco:

Typ powiązania

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 kolumny

DBCOLUMN_TYPE

DBCOLUM_COLUMNSIZE

DBCOLUMN_PRECISION

DBCOLUMN_SCALE DBCOLUMN_DATETIMEPRECISION

DBCOLUMN_FLAGS DBCOLUMNFLAGS_SS_ISVARIABLESCALE

data

DBTYPE_DBDATE

6

10

0

Wyczyść

godzina

DBTYPE_DBTIME2

10

8, 10..16

0..7

Zestaw

smalldatetime

DBTYPE_DBTIMESTAMP

16

16

0

Wyczyść

data_i_godzina

DBTYPE_DBTIMESTAMP

16

23

3

Wyczyść

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 jest zawsze prawdziwe dla daty /czas zawsze są fałszywe typów i 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ą również używane do identyfikowania typu serwera.

DBCOLUMNFLAGS_SS_ISVARIABLESCALE jest prawidłowa tylko po podłączeniu do w SQL Server 2008 (lub nowsze) serwera.DBCOLUMNFLAGS_SS_ISVARIABLESCALE jest niezdefiniowana, po podłączeniu do niedziałający-poziom serwerów.

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

Wyczyść

czas(1..7)

DBTYPE_DBTIME2

10

8, 10..16

0..7

Zestaw

smalldatetime

DBTYPE_DBTIMESTAMP

16

16

0

Wyczyść

data_i_godzina

DBTYPE_DBTIMESTAMP

16

23

3

Wyczyść

datetime2

DBTYPE_DBTIMESTAMP

16

19, 21..27

0..7

Zestaw

datetimeoffset

DBTYPE_DBTIMESTAMPOFFSET

20

26, 28..34

0..7

Zestaw

W dwFlags, DBCOLUMNFLAGS_ISFIXEDLENGTH jest zawsze prawdziwe dla data /czas typów i następujące flagi są zawsze false:

  • DBCOLUMNFLAGS_CACHEDEFERRED

  • DBCOLUMNFLAGS_ISBOOKMARK

  • DBCOLUMNFLAGS_ISCHAPTER

  • DBCOLUMNFLAGS_ISLONG

  • DBCOLUMNFLAGS_ISROWID

  • DBCOLUMNFLAGS_ISROWVER MAYDEFER

zestaw flagi pozostałe (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.

Zobacz także

Koncepcje