Gelen SQL Server 2005 yerel istemci uygulama güncelleştiriliyor

Bu konu en son değişiklikleri açıklanır SQL ServerBeri yerel istemci SQL ServerYerel istemci SQL Server 2005.

Ne zaman Microsoft Data Access Components (mdac) için yükseltme SQL ServerNative Client, bazı davranış farklılıkları da görmek. Daha fazla bilgi için, bkz. mdac gelen yerel SQL Server istemci uygulama güncelleştiriliyor.

SQL ServerYerel istemci 9.0 sevk ile SQL Server 2005. SQL ServerYerel istemci 10.0 sevk ile SQL Server 2008. SQL ServerYerel istemci 10.5 sevk ile SQL Server 2008 R2. SQL ServerYerel istemci 11.0 sevk ile SQL Server 2012.

SQL Server yerel istemci beri değiştirilen davranışıSQL Server 2005

Açıklama

ole db yastıkları sadece tanımlı ölçek.

Dönüştürülen veri sunucusuna gönderilen nerede dönüşümleri için SQL Serveryerel istemci (içinde başlayan SQL Server 2008) yastıkları sondaki sıfırları yalnızca en büyük uzunluğu kadar veri datetimedeğerleri. SQL Server yerel istemci 9.0 9 basamak yastıklı.

İçin dbtype_dbtımestamp doğrulayın ICommandWithParameter::SetParameterInfo.

SQL ServerYerel istemci (içinde başlayan SQL Server 2008) ole db gereksinimi uygulayan bScalede ICommandWithParameter::SetParameterInfoKesirli saniye için ayarlamak için duyarlık dbtype_dbtımestamp için.

sp_columnsSaklı yordam şimdi verir "NO"yerine "NO "IS_NULLABLE sütun için.

Yılında başlayan SQL Serveryerel istemci 10.0 (SQL Server 2008), sp_columnssaklı yordam şimdi verir "NO"yerine "NO "IS_NULLABLE sütun için.

SQLSetDescRec, SQLBindParameter, ve SQLBindColtutarlılık denetimi şimdi yapmak.

Önce SQL Serveryerel istemci 10.0 sql_desc_data_ptr ayarlama, herhangi bir tanımlayıcısı türü için tutarlılık denetimi neden değil SQLSetDescRec, SQLBindParameter, ya SQLBindCol.

SQLCopyDescŞimdi tanımlayıcısı tutarlılık denetimi yapar.

Önce SQL Serveryerel istemci 10.0, SQLCopyDescdeğil yapmak tutarlılık denetimi sql_desc_data_ptr alan üzerinde belirli bir kayda ayarladığınızda.

SQLGetDescRecartık bir tanımlayıcısı tutarlılık denetimi yapmaz.

Önce SQL Serveryerel istemci 10.0, SQLGetDescRecwas set sql_desc_data_ptr alan tanımlayıcısı tutarlılık denetimi gerçekleştirilir. Bu odbc belirtimi ve içinde gerekli değildi SQL Serveryerel istemci 10.0 (SQL Server 2008) ve sonraki sürümleri, bu tutarlılık denetimi artık gerçekleştirilir.

Tarih aralığının dışında olduğunda döndürülen farklı bir hata.

İçin datetimetürü, farklı hata numarası ile döner SQL Serveryerel istemci (içinde başlayan SQL Server 2008) out-of-aralığı daha önceki sürümlerinde döndürülen tarih.

Özellikle SQL Serveryerel istemci 9.0 22007 için tüm dışarı ve aralığı yıl değerleri dize dönüştürmeleri için geri döndü. datetime, ve SQL Serversürüm 10.0 ile başlayan yerel istemci (SQL Server 2008) tarihi tarafından desteklenen aralığın içinde 22008 döndürür datetime2ama tarafından desteklenen aralığın dışında datetimeya smalldatetime.

datetimedeğeri Kesirli saniye keser ve yuvarlama gün değiştirirseniz yuvarlak değil.

Önce SQL Serveryerel istemci 10.0, istemci davranışını datetimesunucuya gönderilen değerleri olduğunu onlara yakın 1 yuvarlak/saniyede 300. Yılında başlayan SQL Serveryerel istemci 10.0, bu senaryonun neden Kesirli saniye bir kesme yuvarlama gün değişirse.

Saniye için mümkün trunction datetimedeğer.

İle oluşturulmuş bir uygulamada SQL Server 2008yerel istemci (veya üstü), bağlandığı bir SQL Server2005 sunucusu kesecek saniye ve saat bölümü bir datetime sütun türü tanımlayıcısı dbtype_dbtımestamp (ole db) veya sql_tımestamp (odbc) ve 0 bir ölçekte bağlarsanız sunucuya gönderilen veri için kesirli saniye.

Örneğin:

Giriş veri: 1994-08-21 21:21:36.000

Eklenen veri: 1994-08-21 21:21:00.000

ole db veri dönüştürme DBTYPE_DBTIME dbtype_date artık gün değiştirmek için neden olabilir.

Önce SQL Serveryerel istemci 10.0, gece yarısı, bir yarım saniye içerisinde bir dbtype_date zaman parçası olarak ole db dönüşüm kodu neden değiştirmek için gün. Yılında başlayan SQL Serveryerel istemci 10.0, gün olacak (Kesirli saniye kesilir ve değil yuvarlanır) değişmez.

IBCPSession::BCColFmtdönüştürme değişiklikleri.

Yılında başlayan SQL Serverkullandığınızda yerel istemci 10.0 IBCPSession::BCOColFmtSQLDATETIME veya SQLDATETIME bir string türüne dönüştürmek için kısmi değer verilir. Örneğin, dönüştürme yazdığınızda SQLDATETIME sqlnvarcharmax, önceki sürümlerinde yazın SQL Serveryerel istemci döndürülen

1989-02-01 00:00:00. SQL ServerYerel istemci 10.0 ve sonraki sürümlerinde 1989-02-01 00:00:00.0000000 dönün.

Gönderilen verilerin boyutu, sql_len_data_at_exec içinde belirtilen uzunluk eşleşmesi gerekir.

sql_len_data_at_exec kullanırken, verinin boyutunu sql_len_data_at_exec ile belirtilen uzunluk eşleşmesi gerekir. Sen-ebilmek kullanma sql_data_at_exec ama sql_len_data_at_exec kullanarak olası performans faydaları vardır.

bcp API kullanan özel uygulamalar artık bir uyarı görebilirsiniz.

Veri uzunluğu tüm türleri için bir alan için belirtilen uzunluk büyükse bcp API bir uyarı iletisi oluşturur. Daha önce bu uyarı yalnızca karakter türleri için verildi, ancak tüm türleri için verilmiş değil.

Boş bir dize içine ekleme bir sql_variantgibi bir Tarih ve Saat türü bir hata üretir bağlı.

De SQL Serveryerel istemci 9.0, boş bir dize içine ekleme bir sql_variantgibi bir Tarih ve Saat türü hata oluşturmamanız bağlı. SQL ServerYerel istemci 10.0 (ve sonrası), bu durumda düzgün bir hata üretir.

Katı sql_c_type _TIMESTAMP ve dbtype_dbtımestamp parametre doğrulama.

Önce SQL Server 2008Native Client, datetimedeğerleri ölçekli sığdırmak için yuvarlak datetimeve smalldatetime tarafından sütun SQL Server. SQL Server 2008Yerel istemci (ve daha üstü) Kesirli saniye için odbc çekirdek belirtiminde tanımlanan sıkı doğrulama kuralları geçerlidir. Parametre değeri belirtilen veya ima basamağı izleyen, kesilme bağlayıcı istemci tarafından ölçeği kullanarak sql türüne dönüştürülemez, bir hata döndürülür.

SQL ServerTetikleyici çalıştırıldığında farklı sonuçlar döndürebilir.

Yılında tanıtılan değişikliklerin SQL Server 2008bir uygulamanın ne zaman çalıştırmak bir tetikleyici neden bir deyimi döndürülen farklı sonuçlara neden olabilir NOCOUNT OFFetkili oldu. Bu durumda, uygulama bir hata oluşturabilir. Bu hatayı gidermek için NOCOUNT ONtetikleyici veya çağrı SQLMoreResultssonraki sonuç ilerlemek için.

Ayrıca bkz.

Diğer Kaynaklar

SQL Server yerel istemci programlama