Aracılığıyla paylaş


Önceki SQL Server sürümler (odbc) ile Gelişmiş tarih/saat türü davranışı

Gelişmiş tarih ve Saat Özellikleri'ni kullanan bir istemci uygulaması bir sürüm ile iletişim kurduğunda, bu konuda Beklenen davranış açıklanır 'denSQL Server önceki SQL Server 2008ve Microsoft veri erişim bileşenleri, Windows Data Access Components veya bir sürüm kullanarak bir istemci uygulaması, SQL Server Native Client daha önceki SQL Server 2008 Gelişmiş tarih ve destekleyen bir sunucuya komut gönderirsaat özellikleri.

Alt düzey istemci davranışı

Bir sürüm kullanarak derlenmiş istemci uygulamaları SQL Server Önce Native Client SQL Server 2008 bakın yeni tarih/saat türleri olarak nvarchar sütun.Sütun içeriği değişmez gösterimler de anlatıldığı gibi "veri formatları: Dizeler ve rakamları" kısmında odbc tarih/saat geliştirmeleri için veri türü desteği. Belirtilen sütun. için Kesirli saniye duyarlık için hazır uzunluğu en fazla sütun boyutu olabilir

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

Deyimi meta veriler tarafından döndürülen SQLDescribeCol, SQLDescribeParam, SQGetDescField, ve SQLColAttribute ile tutarlı meta veriler döndürür kapalı-düzey türü adı. dahil olmak üzere tüm açılardan yazıylaÖrnek olarak böyle bir kapalı-düzey türü olan nvarchar.

Zaman bir kapalı-düzey istemci uygulamasını çalıştırır karşı bir SQL Server 2008 (veya üstü) sunucu hangi şema değişiklikleri için tarih/saat türleri yapıldı, beklenen davranış değeri aşağıdaki 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 (c SQL'e)

Tarih saat

Date

SQL_C_TYPE_DATE

Tamam

TAMAM (1)

SQL_C_TYPE_TIMESTAMP

Saat alanları küme sıfır.

TAMAM (2)

Saat alan sıfır ise, başarısız olur.Birlikte çalıştığı SQL Server 2005.

Time(0)

SQL_C_TYPE_TIME

Tamam

TAMAM (1)

SQL_C_TYPE_TIMESTAMP

Tarih alanları küme için geçerli tarih.

TAMAM (2)

Tarih yoksayılır.Kesirli saniye sıfır olmayan, başarısız olur.Birlikte çalıştığı SQL Server 2005.

Time(7)

SQL_C_TIME

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

TAMAM (1)

SQL_C_TYPE_TIMESTAMP

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

TAMAM (1)

Datetime2(3)

SQL_C_TYPE_TIMESTAMP

Tamam

TAMAM (1)

Datetime2(7)

SQL_C_TYPE_TIMESTAMP

Tamam

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

Smalldatetime

Date

SQL_C_TYPE_DATE

Tamam

Tamam

SQL_C_TYPE_TIMESTAMP

Saat alanları küme sıfır.

TAMAM (2)

Saat alan sıfır ise, başarısız olur.Birlikte çalıştığı SQL Server 2005.

Time(0)

SQL_C_TYPE_TIME

Tamam

Tamam

SQL_C_TYPE_TIMESTAMP

Tarih alanları küme için geçerli tarih.

TAMAM (2)

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

Birlikte çalıştığı SQL Server 2005.

Datetime2(0)

SQL_C_TYPE_TIMESTAMP

Tamam

Tamam

Simge anahtarı

Simge

Anlamı

1

İle yaradıysa SQL Server 2005 onu devam etmelidir daha yeni bir sürüm ile çalışmak SQL Server.

2

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

Yalnızca ortak şema değişiklikleri kabul unutmayın.Genel değişiklikler şunlardır:

  • Burada mantıksal olarak bir uygulama yalnızca bir tarih veya saat değeri gerektiren yeni bir türü kullanıyor.Ancak, uygulama, datetime veya smalldatetime ayrı tarih ve saat türleri yetersizliği yüzünden kullanmak için zorlandı.

  • Yeni bir tür ek Kesirli saniye duyarlık veya doğruluk kazanmak için kullanılı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/saat türleri döndürülür:

Sütun türü

tarih

saat

smalldatetime

datetime

datetime2

datetimeoffset

DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_TYPE_TIMESTAMP

SQL_TYPE_TIMESTAMP

SQL_WVARCHAR

SQL_WVARCHAR

TYPE_NAME

tarih

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/saat türleri döndürülür:

Sütun türü

tarih

saat

smalldatetime

datetime

datetime2

datetimeoffset

TYPE_NAME

tarih

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

CASE_SENSITIVE

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

tarih

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

Alt düzey Server davranışı

Önceki bir sunucu örneğine bağlandığında, SQL Server 2008, yeni sunucu türlerini kullanmaya çalışırlar veya ilişkili meta veriler kodları ve açıklayıcı alanlar içinde iade edilen SQL_ERROR hatası neden. Tanılama kaydı sqlstate HY004 ve "Geçersiz sql veri türü bağlantı sunucu sürüm için" ileti veya 07006 ve "Yasak veri türü öznitelik ihlali" ile oluşturulacak.

Ayrıca bkz.

Kavramlar