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.