Aracılığıyla paylaş


Parametre ve satır kümesi meta veri

Bu konu aşağıdaki türü ve ole db tarih ve saat geliştirmeleri ilgili türü üyeler hakkında bilgi sağlar.

  • DBBINDING yapısı

  • ICommandWithParameters::GetParameterInfo

  • ICommandWithParameters::SetParameterInfo

  • IColumnsRowset::GetColumnsRowset

  • IColumnsInfo::GetColumnInfo

ICommandWithParameters::GetParameterInfo

Aşağıdaki bilgiler DBPARAMINFO yapısında döndürülen prgParamInfo:

Parametre türü

wType

ulParamSize

bPrecision

bScale

dwFlags

DBPARAMFLAGS_SS_ISVARIABLESCALE

tarih

DBTYPE_DBDATE

6

10

0

Temizle

saat

DBTYPE_DBTIME2

10

8, 10..16

0..7

Set

smalldatetime

DBTYPE_DBTIMESTAMP

16

16

0

Temizle

datetime

DBTYPE_DBTIMESTAMP

16

23

3

Temizle

datetime2

DBTYPE_DBTIMESTAMP

16

19,21..27

0..7

Set

datetimeoffset

DBTYPE_DBTIMESTAMPOFFSET

20

26,28..34

0..7

Set

Bazı durumlarda değer aralıkları sürekli olduğundan emin değilseniz, dikkat edin.Kesirli duyarlığını sıfırdan büyük olan bir ondalık noktası ekleme durumdur.

DBPARAMFLAGS_SS_ISVARIABLESCALE, yalnızca bağlandığında geçerli bir SQL Server 2008 (veya üstü) sunucu.DBPARAMFLAGS_SS_ISVARIABLESCALE ise hiç küme alt düzey sunuculara bağlı.

ICommandWithParameters::SetParameterInfo ve örtülü parametre türleri

DBPARAMBINDINFO yapısında sağlanan bilgiler aşağıdaki uymalıdır:

pwszDataSourceType

(sağlayıcı belirli)

pwszDataSourceType

(ole db genel)

ulParamSize

bScale

 

DBTYPE_DATE

6

Göz ardı

tarih

DBTYPE_DBDATE

6

Göz ardı

 

DBTYPE_DBTIME

10

Göz ardı

saat

DBTYPE_DBTIME2

10

0..7

smalldatetime

 

16

Göz ardı

datetime

 

16

Göz ardı

datetime2 veya DBTYPE_DBTIMESTAMP

DBTYPE_DBTIMESTAMP

16

0..7

datetimeoffset

DBTYPE_DBTIMESTAMPOFFSET

20

0..7

The bPrecision parameter is ignored.

"DBPARAMFLAGS_SS_ISVARIABLESCALE" Veri gönderirken göz ardı edilir.Uygulamaları kullanarak eski sekmeli veri akışı (tds) türlerinin kullanımını zorlamak sağlayıcı-belirli bir türü adları "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.Aksi takdirde, appications emin olmanız gerekir bScale olan küme doğru.mdac yükseltilen uygulamaları ve SQL Server Dan Native Client SQL Server 2005 "dbtype_dbtimestamp" kullanın küme başarısız olur bScale doğru.Bağlı sunucu örnekleri, daha önceki SQL Server 2008, bir 'denbScale farklı değer 0 veya 3 "dbtype_dbtimestamp" ile bir hata olduğunu ve E_FAIL döndürülür.

Zaman ICommandWithParameters::SetParameterInfo değil çağrıldığında sağlayıcı imples server yazın da belirtildiği gibi bağlama türünden IAccessor::CreateAccessor gibi:

Bağlama türü

pwszDataSourceType

(sağlayıcı belirli)

DBTYPE_DATE

datetime2(0)

DBTYPE_DBDATE

tarih

DBTYPE_DBTIME

saat(0)

DBTYPE_DBTIME2

saat(7)

DBTYPE_DBTIMESTAMP

datetime2(7)

DBTYPE_DBTIMESTAMPOFFSET

datetimeoffset(7)

IColumnsRowset::GetColumnsRowset

IColumnsRowset::GetColumnsRowset aşağıdaki sütunlar döndürür:

Sütun türü

DBCOLUMN_TYPE

DBCOLUM_COLUMNSIZE

DBCOLUMN_PRECISION

DBCOLUMN_SCALE, DBCOLUMN_DATETIMEPRECISION

DBCOLUMN_FLAGS, DBCOLUMNFLAGS_SS_ISVARIABLESCALE

tarih

DBTYPE_DBDATE

6

10

0

Temizle

saat

DBTYPE_DBTIME2

10

8, 10..16

0..7

Set

smalldatetime

DBTYPE_DBTIMESTAMP

16

16

0

Temizle

datetime

DBTYPE_DBTIMESTAMP

16

23

3

Temizle

datetime2

DBTYPE_DBTIMESTAMP

16

19, 21..27

0..7

Set

datetimeoffset

DBTYPE_DBTIMESTAMPOFFSET

20

26, 28..34

0..7

Set

dbcolumn_flags, DBCOLUMNFLAGS_ISFIXEDLENGTH her zaman tarih/saat türleri için geçerlidir ve aşağıdaki bayraklar her zaman false:

  • DBCOLUMNFLAGS_CACHEDEFERRED

  • DBCOLUMNFLAGS_ISBOOKMARK

  • DBCOLUMNFLAGS_ISCHAPTER

  • DBCOLUMNFLAGS_ISLONG

  • DBCOLUMNFLAGS_ISROWID

  • DBCOLUMNFLAGS_ISROWVER

  • DBCOLUMNFLAGS_MAYDEFER

Kalan bayraklar (DBCOLUMNFLAGS_ISNULLABLE, dbcolumnflags_maybenull, DBCOLUMNFLAGS_WRITE ve DBCOLUMNFLAGS_WRITEUNKNOWN) olabilir kümesütun nasıl tanımlanır ve gerçek sorgu bağlı.

Yeni bayrak DBCOLUMNFLAGS_SS_ISVARIABLESCALE dbcolumn_type DBTYPE_DBTIMESTAMP olduğu sütunlar, sunucu türünü belirlemek bir uygulama izin vermek için dbcolumn_flags sağlanır.dbcolumn_scale veya DBCOLUMN_DATETIMEPRECISION de sunucu türünü tanımlamak için kullanılmalıdır.

DBCOLUMNFLAGS_SS_ISVARIABLESCALE, yalnızca bağlandığında geçerli bir SQL Server 2008 (veya üstü) sunucu.DBCOLUMNFLAGS_SS_ISVARIABLESCALE bağlandığında tanımsız kapalı-düzey sunucular.

IColumnsInfo::GetColumnInfo

DBCOLUMNINFO yapısı aşağıdaki bilgileri verir:

Parametre türü

wType

ulColumnSize

bPrecision

bScale

dwFlags

DBPARAMFLAGS_SS_ISVARIABLESCALE

tarih

DBTYPE_DBDATE

6

10

0

Temizle

saat(1..7)

DBTYPE_DBTIME2

10

8, 10..16

0..7

Set

smalldatetime

DBTYPE_DBTIMESTAMP

16

16

0

Temizle

datetime

DBTYPE_DBTIMESTAMP

16

23

3

Temizle

datetime2

DBTYPE_DBTIMESTAMP

16

19, 21..27

0..7

Set

datetimeoffset

DBTYPE_DBTIMESTAMPOFFSET

20

26, 28..34

0..7

Set

De dwFlags, DBCOLUMNFLAGS_ISFIXEDLENGTH doğruysa her zaman için tarih/saat türleri ve aşağıdaki bayraklar her zaman false:

  • DBCOLUMNFLAGS_CACHEDEFERRED

  • DBCOLUMNFLAGS_ISBOOKMARK

  • DBCOLUMNFLAGS_ISCHAPTER

  • DBCOLUMNFLAGS_ISLONG

  • DBCOLUMNFLAGS_ISROWID

  • DBCOLUMNFLAGS_ISROWVER, MAYDEFER

Kalan bayraklar (DBCOLUMNFLAGS_ISNULLABLE, dbcolumnflags_maybenull, DBCOLUMNFLAGS_WRITE ve DBCOLUMNFLAGS_WRITEUNKNOWN) olabilir küme.

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.

Ayrıca bkz.

Kavramlar