Sunucudan istemciye gerçekleştirilen dönüşümleri
Bu konu, tarih/saat dönüşümleri arasında gerçekleştirilen açıklar SQL Server 2008 (veya üstü) ve bir istemci uygulaması ile yazılmış SQL Server Yerel istemci ole db.
Dönüşümleri
Aşağıdaki tablo istemciye döndürülen türü ve bağlama türü arasında dönüştürme açıklar.Çıkış parametreleri için ICommandWithParameters::SetParameterInfo çağrıldı ve belirtilen tür pwszDataSourceType bir örtük dönüştürme sunucu üzerinde gerçek türü sunucu tarafından gerçekleştirilecek eşleşme yapar ve türü için döndürülen istemci üzerinden belirtilen tür eşleşecektir ICommandWithParameters::SetParameterInfo.Bu beklenmeyen dönüştürme neden sonuçlar server'ın dönüştürme kuralları bu konuda açıklandığı olanlardan farklı olduğunda.Örneğin, ne zaman varsayılan bir tarih sağlanmalıdır, SQL Server 1899-12-30 yerine 1900-1-1 kullanır.
-> Dan |
DATE |
DBDATE |
DBTIME |
DBTIME2 |
DBTIMESTAMP |
DBTIMESTAMPOFFSET |
FILETIME |
BAYT |
VARYANT |
SSVARIANT |
BSTR |
STR |
WSTR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Date |
1,7 |
Tamam |
- |
- |
1 |
1,3 |
1,7 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Time |
5,6,7 |
- |
9 |
Tamam |
6 |
3,6 |
5,6 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Smalldatetime |
7 |
8 |
9,10 |
10 |
Tamam |
3 |
7 |
- |
7 (VT_DATE) |
Tamam |
Tamam |
4 |
4 |
Tarih saat |
5,7 |
8 |
9,10 |
10 |
Tamam |
3 |
7 |
- |
7 (VT_DATE) |
Tamam |
Tamam |
4 |
4 |
Datetime2 |
5,7 |
8 |
9,10 |
10 |
7 |
3 |
5,7 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Datetimeoffset |
5,7,11 |
8,11 |
9,10,11 |
10,11 |
7,11 |
Tamam |
5,7,11 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Char, Varchar, Nchar, Nvarchar |
7, 13 |
12 |
12,9 |
12 |
12 |
12 |
7,13 |
Yok |
Yok |
Yok |
Yok |
Yok |
Yok |
Sql_variant (datetime) |
7 |
8 |
9,10 |
10 |
Tamam |
3 |
7 |
- |
7 (VT_DATE) |
Tamam |
Tamam |
4 |
4 |
Sql_variant (smalldatetime) |
7 |
8 |
9,10 |
10 |
Tamam |
3 |
7 |
- |
7 (VT_DATE) |
Tamam |
Tamam |
4 |
4 |
Sql_variant (tarih) |
1,7 |
Tamam |
2 |
2 |
1 |
1,3 |
1,7 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Sql_variant (saat) |
5,6,7 |
2 |
6 |
Tamam |
6 |
3,6 |
5,6 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Sql_variant (datetime2) |
5,7 |
8 |
9,10 |
10 |
Tamam |
3 |
5,7 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Sql_variant (datetimeoffset) |
5,7,11 |
8,11 |
9,10,11 |
10,11 |
7,11 |
Tamam |
5,7,11 |
- |
TAMAM (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Simge anahtarı
Simge |
Anlamı |
---|---|
Tamam |
Dönüştürme gerekli değildir. |
- |
Dönüştürme desteklenir.Bağlama doğrulanırsa, IAccessor::CreateAccessor olduğu denilen, DBBINDSTATUS_UPSUPPORTEDCONVERSION iade rgStatus.erişimci doğrulaması ertelenmiş, dbstatus_e_badaccessor küme. |
1 |
Saat alanları sıfır olarak küme. |
2 |
dbstatus_e_cantconvertvalue küme. |
3 |
Timezone sıfır olarak küme. |
4 |
istemci arabellek yeterince büyük değilse, dbstatus_s_truncated küme.Ne zaman sunucu türünü içerir sonuç basamak Kesirli saniye dize sunucu türü ölçek tam olarak eşleşir. |
5 |
Kesme saniye veya Kesirli saniye yoksayılır. |
6 |
Değişmez bir dize saat kaynak olduğunu ve hedef dbtype_date tarihi geçerli tarih olarak küme.Bu durum, 1899-12-30 kullanılır. |
7 |
Değer taşarsa dbstatus_e_dataoverflow küme. |
8 |
Saat alanları göz ardı edilir. |
9 |
Kesirli saniye alanları göz ardı edilir. |
10 |
Tarih bileşeni yok sayılır. |
11 |
Zaman dönüştürülür istemci saat dilimi.dbstatus_e_dataoverflow küme, bu dönüştürme sırasında bir hata meydana gelirse. |
12 |
Dize ISO sabit değer olarak ayrıştırılır ve dönüştürülmesi için hedef türü.Bu başarısız olursa, dize bir ole tarih hazır bilgisi ayrıştırılır (aynı zamanda sahip olduğu saat bileşenleri) ve bir ole tarihnden (dbtype_date) hedef türe dönüştürülür.Dize sözdizimi için ISO biçimini Ayrıştırma işleminin başarılı olması için izin verilen hedef türü sabit değerleri uyması gerekir.Başarılı olması için ayrıştırma için ole, ole tarafından tanınan sözdizimi dize uyması gerekir.Dize ayrıştırılamaz dbstatus_e_cantconvertvalue küme.Herhangi bir bileşenin değeri aralık dışında dbstatus_e_dataoverflow küme. |
13 |
Dize ISO sabit değer olarak ayrıştırılır ve dönüştürülmesi için hedef türü.Bu başarısız olursa, dize bir ole tarih hazır bilgisi ayrıştırılır (aynı zamanda sahip olduğu saat bileşenleri) ve bir ole tarihnden (dbtype_date) hedef türe dönüştürülür.Hedef dbtype_date veya DBTYPE_DBTIMESTAMP belirtilmedikçe dize datetime rakamları için sözdizimi uyması gerekir.Bu durum, bir datetime veya harflerden oluşan saat ISO biçimini Ayrıştırma işleminin başarılı olması için izin verilir.Başarılı olması için ayrıştırma için ole, ole tarafından tanınan sözdizimi dize uyması gerekir.Dize ayrıştırılamaz dbstatus_e_cantconvertvalue küme.Herhangi bir bileşenin değeri aralık dışında dbstatus_e_dataoverflow küme. |