Sunucudan istemciye gerçekleştirilen dönüşümleri
Özel tarih/saat arasında gerçekleştirilen dönüşümleri açıklanmıştır SQL Server 2008(veya daha yenisi) ve bir istemci uygulama ile yazılmış SQL Serveryerel istemci ole db.
Dönüşümleri
Aşağıdaki tabloda, istemciye döndürülen türü ve bağlama türü arasında dönüştürme açıklar. Çıkış parametreleri, eğer ICommandWithParameters::SetParameterInfoçağrıldı ve belirtilen türü pwszDataSourceTypedeğil sunucuda bir örtük dönüştürme gerçek türü sunucu tarafından gerçekleştirilecek maç yapar ve istemciye döndürülen türü ile belirtilen tür maç olacak ICommandWithParameters::SetParameterInfo. Sunucunun dönüştürme kuralları bu konuda açıklanan farklı olduğunda bu dönüştürme beklenmeyen sonuçlara yol açabilir. Örneğin, ne zaman bir varsayılan tarih sağlanmalıdır, SQL Server1900-1-1 yerine 1899-12-30 kullanır.
-> Kaynak |
DATE |
DBDATE |
DBTIME |
DBTIME2 |
DBTIMESTAMP |
DBTIMESTAMPOFFSET |
FILETIME |
BAYT |
VARYANT |
SSVARIANT |
BSTR |
STR |
WSTR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tarihi |
1,7 |
Tamam |
- |
- |
1 |
1,3 |
1,7 |
- |
TAMAM'I TIKLATIN (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Time |
5,6,7 |
- |
9 |
Tamam |
6 |
3,6 |
5,6 |
- |
TAMAM'I TIKLATIN (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Smalldatetime |
7 |
8 |
9,10 |
10 |
Tamam |
3 |
7 |
- |
7 (VT_DATE) |
Tamam |
Tamam |
4 |
4 |
DateTime |
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'I TIKLATIN (VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Datetimeoffset |
5,7,11 |
8,11 |
9,10,11 |
10,11 |
7,11 |
Tamam |
5,7,11 |
- |
TAMAM'I TIKLATIN (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 |
- |
OK(VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Sql_variant (zaman) |
5,6,7 |
2 |
6 |
Tamam |
6 |
3,6 |
5,6 |
- |
OK(VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Sql_variant (datetime2) |
5,7 |
8 |
9,10 |
10 |
Tamam |
3 |
5,7 |
- |
OK(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 |
- |
OK(VT_BSTR) |
Tamam |
Tamam |
4 |
4 |
Semboller için anahtar
Simge |
Anlamı |
---|---|
Tamam |
Dönüştürme gerekli değildir. |
- |
Dönüştürme desteklenir. Bağlama doğrulanırsa ne zaman IAccessor::CreateAccessorolan denilen, DBBINDSTATUS_UPSUPPORTEDCONVERSION iade rgStatus. Erişimci doğrulama ertelenmiş, dbstatus_e_badaccessor ayarlanır. |
1 |
Saat alanları sıfır olarak ayarlanır. |
2 |
dbstatus_e_cantconvertvalue ayarlanır. |
3 |
The timezone sıfır olarak ayarlayın. |
4 |
İstemci arabellek yeterince büyük değilse, dbstatus_s_truncated ayarlanır. Sunucu türü Kesirli saniye içerdiğinde, basamak Sonuç dizesi sunucu türü ölçek tam olarak eşleşir. |
5 |
Kesme saniye veya Kesirli saniye yoksayılır. |
6 |
Tarihi geçerli tarihe kadar olan kaynak değişmez bir dize kez ve hedef dbtype_date ayarlanır. Bu durumda, 1899-12-30 kullanılır. |
7 |
Değer taşarsa dbstatus_e_dataoverflow ayarlanır. |
8 |
Saat alanları göz ardı edilir. |
9 |
Kesirli saniye alanları göz ardı edilir. |
10 |
Tarih bileşeni yok sayılır. |
11 |
İstemci dilimimi dönüştürülür. dbstatus_e_dataoverflow ayarlanır bu dönüştürme sırasında bir hata meydana gelirse. |
12 |
Dize ISO tarafından sabit bir değer olarak ayrıştırılmış ve hedef türe dönüştürülür. Bu başarısız olursa, dize (Bu da zamanı bileşenleri) bir ole tarihi olarak hazır bilgi ayrıştırılmış ve bir ole tarihinden (dbtype_date) hedef türe dönüştürülür. Dize harflerin ISO formatı ayrıştırma başarılı olmak için izin hedef türü sözdizimi uyması gerekir. Başarılı olmak için ayrıştırma ole için dize ole tarafından tanınan sözdizimine uygun olmalıdır. Dize ayrıştırılamaz dbstatus_e_cantconvertvalue ayarlanır. Herhangi bir bileşeni değerleri aralığının dışında ise dbstatus_e_dataoverflow ayarlanır. |
13 |
Dize ISO tarafından sabit bir değer olarak ayrıştırılmış ve hedef türe dönüştürülür. Bu başarısız olursa, dize (Bu da zamanı bileşenleri) bir ole tarihi olarak hazır bilgi ayrıştırılmış ve bir ole tarihinden (dbtype_date) hedef türe dönüştürülür. Hedef dbtype_date veya dbtype_dbtımestamp olmadıkça dize datetime rakamları, sözdizimi uyması gerekir. Bu durumda, datetime veya zaman değişmez ISO formatı ayrıştırma başarılı olmak için izin verilir. Başarılı olmak için ayrıştırma ole için dize ole tarafından tanınan sözdizimine uygun olmalıdır. Dize ayrıştırılamaz dbstatus_e_cantconvertvalue ayarlanır. Herhangi bir bileşeni değerleri aralığının dışında ise dbstatus_e_dataoverflow ayarlanır. |