Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu, OLE DB tarih ve saat geliştirmeleriyle ilgili olarak aşağıdaki tür ve tür üyeleri 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 prgParamInfoaracılığıyla döndürülür:
| Parametre Türü | wType | ulParamSize | bPrecision | bScale |
dwFlags DBPARAMFLAGS_SS_ISVARIABLESCALE |
|---|---|---|---|---|---|
| tarih | DBTYPE_DBDATE | 6 | 10 | 0 | Berrak |
| Saat | DBTYPE_DBTIME2 | 10 | 8, 10..16 | 0..7 | Ayarlamak |
| smalldatetime | DBTYPE_DBTIMESTAMP | 16 | 16 | 0 | Berrak |
| datetime | DBTYPE_DBTIMESTAMP | 16 | 23 | 3 | Berrak |
| datetime2 | DBTYPE_DBTIMESTAMP | 16 | 19,21..27 | 0..7 | Ayarlamak |
| datetimeoffset | DBTYPE_DBTIMESTAMPOFFSET | 20 | 26,28..34 | 0..7 | Ayarlamak |
Bazı durumlarda değer aralıklarının sürekli olmadığını fark edin. Bunun nedeni kesirli duyarlık sıfırdan büyük olduğunda ondalık noktanın eklenmesidir.
DBPARAMFLAGS_SS_ISVARIABLESCALE yalnızca SQL Server 2008 (10.0.x) (veya üzeri) sunucuya bağlı olduğunda geçerlidir. DBPARAMFLAGS_SS_ISVARIABLESCALE hiçbir zaman alt düzey sunuculara bağlanıldığında ayarlanmadı.
ICommandWithParameters::SetParameterInfo ve Zımni Parametre Türleri
DBPARAMBINDINFO yapısında sağlanan bilgiler aşağıdakilere uygun olmalıdır:
|
pwszDataSourceType (sağlayıcıya özgü) |
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 |
bPrecision parametresi yoksayılır.
Sunucuya veri gönderilirken "DBPARAMFLAGS_SS_ISVARIABLESCALE" yoksayılır. Uygulamalar, sağlayıcıya özgü "datetime" ve "smalldatetime" tür adlarını kullanarak eski tablosal veri akışı (TDS) türlerinin kullanılmasını zorlayabilir. SQL Server 2008 (10.0.x) (veya üzeri) sunuculara bağlandığında, "datetime2" biçimi kullanılır ve gerekirse, tür adı "datetime2" veya "DBTYPE_DBTIMESTAMP" olduğunda örtük bir sunucu dönüştürmesi gerçekleşir.
bScale, sağlayıcıya özgü tür adları "datetime" veya "smalldatetime" kullanılırsa yoksayılır. Aksi takdirde, uygulamaların bScale doğru ayarlandığından emin olması gerekir. "DBTYPE_DBTIMESTAMP" kullanan SQL Server 2005'ten (9.x) MDAC ve SQL Server Native Client'dan yükseltilen uygulamalar, bScale doğru
ICommandWithParameters::SetParameterInfo çağrılmadığında sağlayıcı, IAccessor::CreateAccessor'da belirtildiği gibi bağlama türünden sunucu türünü şu şekilde ima eder:
| Bağlama Türü |
pwszDataSourceType (sağlayıcıya özgü) |
|---|---|
| DBTYPE_DATE | datetime2(0) |
| DBTYPE_DBDATE | tarih |
| DBTYPE_DBTIME | time(0) |
| DBTYPE_DBTIME2 | time(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 | Berrak |
| Saat | DBTYPE_DBTIME2 | 10 | 8, 10..16 | 0..7 | Ayarlamak |
| smalldatetime | DBTYPE_DBTIMESTAMP | 16 | 16 | 0 | Berrak |
| datetime | DBTYPE_DBTIMESTAMP | 16 | 23 | 3 | Berrak |
| datetime2 | DBTYPE_DBTIMESTAMP | 16 | 19, 21..27 | 0..7 | Ayarlamak |
| datetimeoffset | DBTYPE_DBTIMESTAMPOFFSET | 20 | 26, 28..34 | 0..7 | Ayarlamak |
DBCOLUMN_FLAGS DBCOLUMNFLAGS_ISFIXEDLENGTH tarih/saat türleri için her zaman doğrudur ve aşağıdaki bayraklar her zaman yanlıştır:
DBCOLUMNFLAGS_CACHEDEFERRED
DBCOLUMNFLAGS_ISBOOKMARK
DBCOLUMNFLAGS_ISCHAPTER
DBCOLUMNFLAGS_ISLONG
DBCOLUMNFLAGS_ISROWID
DBCOLUMNFLAGS_ISROWVER
DBCOLUMNFLAGS_MAYDEFER
Sütunun nasıl tanımlandığına ve gerçek sorguya bağlı olarak kalan bayraklar (DBCOLUMNFLAGS_ISNULLABLE, DBCOLUMNFLAGS_MAYBENULL, DBCOLUMNFLAGS_WRITE ve DBCOLUMNFLAGS_WRITEUNKNOWN) ayarlanabilir.
Bir uygulamanın DBCOLUMN_TYPE DBTYPE_DBTIMESTAMP olduğu sunucu sütun türünü belirlemesine izin vermek için DBCOLUMN_FLAGS'de yeni bir bayrak DBCOLUMNFLAGS_SS_ISVARIABLESCALE sağlanır. sunucu türünü tanımlamak için DBCOLUMN_SCALE veya DBCOLUMN_DATETIMEPRECISION de kullanılmalıdır.
DBCOLUMNFLAGS_SS_ISVARIABLESCALE yalnızca SQL Server 2008 (10.0.x) (veya üzeri) sunucuya bağlı olduğunda geçerlidir. DBCOLUMNFLAGS_SS_ISVARIABLESCALE, alt düzey sunuculara bağlanıldığında tanımlanmamıştır.
IColumnsInfo::GetColumnInfo
DBCOLUMNINFO yapısı aşağıdaki bilgileri döndürür:
| Parametre Türü | wType | ulColumnSize | bPrecision | bScale |
dwFlags DBPARAMFLAGS_SS_ISVARIABLESCALE |
|---|---|---|---|---|---|
| tarih | DBTYPE_DBDATE | 6 | 10 | 0 | Berrak |
| time(1..7) | DBTYPE_DBTIME2 | 10 | 8, 10..16 | 0..7 | Ayarlamak |
| smalldatetime | DBTYPE_DBTIMESTAMP | 16 | 16 | 0 | Berrak |
| datetime | DBTYPE_DBTIMESTAMP | 16 | 23 | 3 | Berrak |
| datetime2 | DBTYPE_DBTIMESTAMP | 16 | 19, 21..27 | 0..7 | Ayarlamak |
| datetimeoffset | DBTYPE_DBTIMESTAMPOFFSET | 20 | 26, 28..34 | 0..7 | Ayarlamak |
dwFlagsiçinde DBCOLUMNFLAGS_ISFIXEDLENGTH tarih/saat türleri için her zaman doğrudur ve aşağıdaki bayraklar her zaman false olur:
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.
dwFlags'da uygulamanın wType DBTYPE_DBTIMESTAMP sütun türünü belirlemesine izin vermek için yeni bir bayrak DBCOLUMNFLAGS_SS_ISVARIABLESCALE sağlanır. bScale, sunucu türünü tanımlamak için de kullanılmalıdır.