Parametre ve satır kümesi meta veri
Bu konu aşağıdaki türü ve tipi üyeler, ilgili ole db Tarih ve saat geliştirmeleri hakkında bilgi sağlar.
DBBINDING yapısı
ICommandWithParameters::GetParameterInfo
ICommandWithParameters::SetParameterInfo
IColumnsRowset::GetColumnsRowset
IColumnsInfo::GetColumnInfo
ICommandWithParameters::GetParameterInfo
Aşağıdaki bilgiler aracılığıyla DBPARAMINFO yapısı döndürülür prgParamInfo:
Parametre türü |
wType |
ulParamSize |
bPrecision |
bScale |
dwFlags DWFLAGS |
---|---|---|---|---|---|
tarihi |
DBTYPE_DBDATE |
6 |
10 |
0 |
Açık |
Saat |
DBTYPE_DBTIME2 |
10 |
8, 10..16 |
0..7 |
Ayarla |
smalldatetime |
DBTYPE_DBTIMESTAMP |
16 |
16 |
0 |
Açık |
datetime |
DBTYPE_DBTIMESTAMP |
16 |
23 |
3 |
Açık |
datetime2 |
DBTYPE_DBTIMESTAMP |
16 |
19,21..27 |
0..7 |
Ayarla |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
26,28..34 |
0..7 |
Ayarla |
Bazı durumlarda değer aralıkları sürekli değildir dikkat edin. Bir ondalık için ek kesirli duyarlık sıfırdan büyük durumdur.
DwFlags yalnızca bağlandığında geçerli bir SQL Server 2008(veya üstü) sunucu. DwFlags asla alt düzey sunuculara bağlı olduğunda ayarlanır.
ICommandWithParameters::SetParameterInfo ve örtülü parametre türleri
DBPARAMBINDINFO yapısı içinde 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ı |
tarihi |
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_dbtımestamp |
DBTYPE_DBTIMESTAMP |
16 |
0..7 |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
0..7 |
bPrecisionParametre yoksayılır.
"DBPARAMFLAGS_SS_ISVARIABLESCALE" verileri sunucuya gönderirken sayılır. Uygulamalar sağlayıcıya özgü türü adları kullanarak eski sekmeli veri akışı (tds) türlerinin kullanımını zorlamak "datetime'' ve "smalldatetime". Bağlandığında SQL Server 2008(veya üstü) sunucuları, "datetime2"biçimi kullanılır ve bir örtülü sunucu dönüştürme, gerekirse, tür adı olduğunda ortaya çıkar"datetime2'' ya da "Dbtype_dbtımestamp". bScalesağlayıcıya özel adlarını yazın sayılır "datetime'' ya da "smalldatetime'' kullanılır. Aksi takdirde, prosesi sağlamak gerekir bScaledoğru. mdac yükseltilen uygulamaları ve SQL ServerYerel istemci SQL Server 2005"Dbtype_dbtımestamp" kullanmak Onlar ayarlı başarısız olur bScaledoğru. Sunucu örnekleri için bağlanıldığında daha önce SQL Server 2008, bir bScaledeğeri 0 veya 3 ile "Dbtype_dbtımestamp" dışında bir hata olduğunu ve E_FAIL iade edilecektir.
Ne zaman ICommandWithParameters::SetParameterInfo, belirtilen bağlama türü sağlayıcı imples sunucu yazın olarak değil IAccessor::CreateAccessorgibi:
Bağlama türü |
pwszDataSourceType (sağlayıcı belirli) |
---|---|
DBTYPE_DATE |
datetime2(0) |
DBTYPE_DBDATE |
tarihi |
DBTYPE_DBTIME |
Time(0) |
DBTYPE_DBTIME2 |
Time(7) |
DBTYPE_DBTIMESTAMP |
datetime2(7) |
DBTYPE_DBTIMESTAMPOFFSET |
datetimeoffset(7)) |
IColumnsRowset::GetColumnsRowset
IColumnsRowset::GetColumnsRowsetaş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 |
---|---|---|---|---|---|
tarihi |
DBTYPE_DBDATE |
6 |
10 |
0 |
Açık |
Saat |
DBTYPE_DBTIME2 |
10 |
8, 10..16 |
0..7 |
Ayarla |
smalldatetime |
DBTYPE_DBTIMESTAMP |
16 |
16 |
0 |
Açık |
datetime |
DBTYPE_DBTIMESTAMP |
16 |
23 |
3 |
Açık |
datetime2 |
DBTYPE_DBTIMESTAMP |
16 |
19, 21..27 |
0..7 |
Ayarla |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
26, 28..34 |
0..7 |
Ayarla |
DBCOLUMN_FLAGS, DBCOLUMNFLAGS_ISFIXEDLENGTH her zaman Tarih ve 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), sütun nasıl tanımlanır ve gerçek sorgu türüne bağlı olarak ayarlanabilir.
Yeni bayrak DBCOLUMNFLAGS_SS_ISVARIABLESCALE dbcolumn_type dbtype_dbtımestamp olduğu sütunlar, sunucu türünü belirlemek için bir uygulama sağlamak için dbcolumn_flags içinde sağlanır. dbcolumn_scale ya da DBCOLUMN_DATETIMEPRECISION sunucu türünü tanımlamak için de kullanılmalıdır.
DBCOLUMNFLAGS_SS_ISVARIABLESCALE sadece bağlandığında geçerli bir SQL Server 2008(veya üstü) sunucu. DBCOLUMNFLAGS_SS_ISVARIABLESCALE, alt düzey sunuculara bağlandığında tanımsızdır.
IColumnsInfo::GetColumnInfo
DBCOLUMNINFO yapısı aşağıdaki bilgileri verir:
Parametre türü |
wType |
ulColumnSize |
bPrecision |
bScale |
dwFlags DWFLAGS |
---|---|---|---|---|---|
tarihi |
DBTYPE_DBDATE |
6 |
10 |
0 |
Açık |
Time(1..7) |
DBTYPE_DBTIME2 |
10 |
8, 10..16 |
0..7 |
Ayarla |
smalldatetime |
DBTYPE_DBTIMESTAMP |
16 |
16 |
0 |
Açık |
datetime |
DBTYPE_DBTIMESTAMP |
16 |
23 |
3 |
Açık |
datetime2 |
DBTYPE_DBTIMESTAMP |
16 |
19, 21..27 |
0..7 |
Ayarla |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
20 |
26, 28..34 |
0..7 |
Ayarla |
De dwFlags, DBCOLUMNFLAGS_ISFIXEDLENGTH her zaman Tarih ve saat türleri için gerçek 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) ayarlanabilir.
DBCOLUMNFLAGS_SS_ISVARIABLESCALE'de sağlanan yeni bayrak dwFlagssütunlar, sunucu türünü belirlemek için bir uygulama sağlamak için nerede wTypedbtype_dbtımestamp olur. bScaleAyrıca sunucu türünü tanımlamak için kullanılmalıdır.