Aracılığıyla paylaş


Gelişmiş tarih ve Saat türü davranışı ile önceki SQL Server sürümler (odbc)

Gelişmiş tarih ve saat özellikleri kullanan bir istemci uygulaması bir sürümüyle kurduğunda beklenen davranışı açıklanmıştır SQL Serverdaha önce SQL Server 2008ve Microsoft veri erişim bileşenleri, Windows Data Access Components veya bir sürümünü kullanarak bir istemci uygulaması ne zaman SQL Serveryerel istemci daha erken SQL Server 2008destekleyen Gelişmiş tarih ve saat özellikleri komutları sunucuya gönderir.

Alt düzey istemci davranışı

Bir sürümü ile derlendi istemci uygulamaları SQL ServerÖnce yerel istemci SQL Server 2008Yeni Tarih ve saat türleri nvarchar sütun olarak bkz. Sütun içeriği "Veri biçimleri: dizeler ve harflerin" açıklandığı gibi edebi temsilcilikleri vardır bölümünde odbc tarih/saat geliştirmeleri için veri türü desteği. Sütun boyutu için kesirli saniye duyarlık sütunu için belirtilen maksimum edebi uzunluğudur.

Katalog API'leri meta verileri (örneğin, nvarchar) istemci ile ilişkili alt düzey gösterimi (örneğin, uygun hazır bilgi biçimi) döndürülen alt düzey veri türü kodu ile tutarlı dönecektir. Ancak, gerçek olacak veri türü adı verilen SQL Server 2008türü adı.

Deyimi meta verileri tarafından döndürülen SQLDescribeCol, SQLDescribeParam, SQGetDescField, ve SQLColAttributedüzey türü tür adı dahil olmak üzere her açıdan tutarlı meta veri-ecek dönmek. Böyle bir alt düzey türü örneği olduğunu nvarchar.

Alt düzey istemci uygulama çalışınca karşı bir SQL Server 2008(veya üstü) sunucusu, Tarih/Saat için hangi şema değişiklikleri türleri yapılmış beklenen davranışı gibidir:

SQL Server 2005 türü

SQL Server 2008(veya üstü) Türü

odbc istemci türü

Sonuç dönüştürme (sql c)

Parametre dönüştürme (sql c)

DateTime

Tarihi

SQL_C_TYPE_DATE

Tamam

OK (1)

SQL_C_TYPE_TIMESTAMP

Saat alanları sıfır olarak ayarlayın.

OK (2)

Saat alanı sıfır ise başarısız. İnşaat ile SQL Server 2005.

Time(0)

SQL_C_TYPE_TIME

Tamam

OK (1)

SQL_C_TYPE_TIMESTAMP

Tarih alanları, geçerli tarih olarak ayarlamak.

OK (2)

Tarih yoksayılır. Kesirli saniye sıfır başarısız olur. İnşaat ile SQL Server 2005.

Time(7)

SQL_C_TIME

Başarısız – geçersiz zaman değişmez.

OK (1)

SQL_C_TYPE_TIMESTAMP

Başarısız – geçersiz zaman değişmez.

OK (1)

Birdatetime2 (3)

SQL_C_TYPE_TIMESTAMP

Tamam

OK (1)

Birdatetime2 (7)

SQL_C_TYPE_TIMESTAMP

Tamam

Değer 1/300th saniye istemci dönüştürme yuvarlanır.

Smalldatetime

Tarihi

SQL_C_TYPE_DATE

Tamam

Tamam

SQL_C_TYPE_TIMESTAMP

Saat alanları sıfır olarak ayarlayın.

OK (2)

Saat alanı sıfır ise başarısız. İnşaat ile SQL Server 2005.

Time(0)

SQL_C_TYPE_TIME

Tamam

Tamam

SQL_C_TYPE_TIMESTAMP

Tarih alanları, geçerli tarih olarak ayarlamak.

OK (2)

Tarih yoksayılır. Kesirli saniye sıfır başarısız olur.

İnşaat ile SQL Server 2005.

Birdatetime2 (0)

SQL_C_TYPE_TIMESTAMP

Tamam

Tamam

Semboller için anahtar

Simge

Anlamı

1

Eğer o amele-e ile SQL Server 2005o daha yeni bir sürümü ile çalışmaya devam SQL Server.

2

İle çalışan uygulama SQL Server 2005daha yeni bir sürümü ile başarısız olabilir SQL Server.

Not yalnızca ortak şema değişiklikleri kabul. Genel değişiklikler şunlardır:

  • Yeni bir türü kullanarak burada mantıklı bir uygulama sadece bir tarih veya saat değeri gerektirir. Ancak, uygulamanın datetime veya smalldatetime ayrı Tarih ve saat türleri eksikliği nedeniyle kullanmak zorunda kaldı.

  • Ek Kesirli saniye duyarlık veya doğruluk kazanmak için yeni bir türü kullanıyor.

  • Bu tercih edilen Tarih ve Saat veri türü olduğundan datetime2 için geçiş yapma.

SQLColumns SQLProcedureColumns ve SQLSpecialColumns tarafından döndürülen sütun meta veri

Aşağıdaki sütun değerleri için Tarih ve saat türleri döndürülür:

Sütun türü

tarihi

Saat

smalldatetime

datetime

datetime2

datetimeoffset

DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_TYPE_TIMESTAMP

SQL_TYPE_TIMESTAMP

SQL_WVARCHAR

SQL_WVARCHAR

TYPE_NAME

tarihi

Saat

smalldatetime

datetime

datetime2

datetimeoffset

COLUMN_SIZE

10

8,10..16

16

23

19, 21..27

26, 28..34

BUFFER_LENGTH

20

16, 20..32

16

16

38, 42..54

52, 56..68

DECIMAL_DIGITS

NULL

NULL

0

3

NULL

NULL

SQL_DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME

SQL_DATETIME

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME_SUB

NULL

NULL

SQL_CODE_TIMESTAMP

SQL_CODE_TIMESTAMP

NULL

NULL

CHAR_OCTET_LENGTH

NULL

NULL

NULL

NULL

NULL

NULL

SS_DATA_TYPE

0

0

111

111

0

0

SQLSpecialColumns, sql_data_type, SQL_DATETIME_SUB, char_octet_length veya ss_data_type döndürmez.

SQLGetTypeInfo tarafından döndürülen veri türü meta verileri

Aşağıdaki sütun değerleri için Tarih ve saat türleri döndürülür:

Sütun türü

tarihi

Saat

smalldatetime

datetime

datetime2

datetimeoffset

TYPE_NAME

tarihi

Saat

smalldatetime

datetime

datetime2

datetimeoffset

DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_TYPE_TIMESTAMP

SQL_TYPE_TIMESTAMP

SQL_WVARCHAR

SQL_WVARCHAR

COLUMN_SIZE

10

16

16

23

27

34

LITERAL_PREFIX

LITERAL_SUFFIX

CREATE_PARAMS

NULL

NULL

NULL

NULL

NULL

NULL

NULL OLABİLECEK

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

BUYUKLUK_DUYARLİ

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

ARANABİLİR

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

UNSIGNED_ATTRIBUTE

NULL

NULL

NULL

NULL

NULL

NULL

FXED_PREC_SCALE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

AUTO_UNIQUE_VALUE

NULL

NULL

NULL

NULL

NULL

NULL

LOCAL_TYPE_NAME

tarihi

Saat

smalldatetime

datetime

datetime2

datetimeoffset

MINIMUM_SCALE

NULL

NULL

0

3

NULL

NULL

MAXIMUM_SCALE

NULL

NULL

0

3

NULL

NULL

SQL_DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME

SQL_DATETIME

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME_SUB

NULL

NULL

SQL_CODE_TIMESTAMP

SQL_CODE_TIMESTAMP

NULL

NULL

NUM_PREC_RADIX

NULL

NULL

NULL

NULL

NULL

NULL

INTERVAL_PRECISION

NULL

NULL

NULL

NULL

NULL

NULL

USERTYPE

0

0

12

22

0

0

Aşağı düzey Server davranışı

Önceki bir sunucu örneğine bağlandığında, SQL Server 2008, yeni sunucu türlerini kullanmaya teşebbüs veya ilişkili meta kodlarını ve tanımlayıcısı alanları içinde iade edilen sql_error sonuçlanır. Tanılama kaydı sqlstate HY004 ve mesaj "Geçersiz sql veri türü için bağlantı sunucu sürümü" veya 07006 ve "yasak veri türü özniteliği ihlali" ile oluşturulur.

Ayrıca bkz.

Kavramlar

Tarih/Saat (odbc) geliştirmeleri