Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Fontos
Natív SQL Server-ügyfél (SNAC) nem a következőkkel szállítható:
- SQL Server 2022 (16.x) és újabb verziók
- AZ SQL Server Management Studio 19- és újabb verziói
Az SQL Server natív ügyfele (SQLNCLI vagy SQLNCLI11) és az örökölt Microsoft OLE DB Provider for SQL Server (SQLOLEDB) nem ajánlott az új alkalmazásfejlesztéshez.
Új projektek esetén használja az alábbi illesztőprogramok egyikét:
Az SQL Server adatbázismotor összetevőjeként (2012–2019-ben) futó SQLNCLI esetében tekintse meg ezt a Támogatási életciklus kivétel.
Ez a témakör az SQL Server natív ügyfélprogramjának az SQL Server 2005-ben (9.x) történő natív SQL Server-ügyfél óta bekövetkezett kompatibilitástörő változásait ismerteti.
Amikor a Microsoft Data Access-összetevőkről (MDAC)-ról natív SQL Server-ügyfélre frissít, néhány viselkedésbeli különbség is előfordulhat. További információ: Alkalmazás frissítése natív SQL Server-ügyfélre az MDAC-.
Az SQL Server natív ügyfél 9.0-s verziójának kézbesítése az SQL Server 2005-ben (9.x). Az SQL Server 2008-nal (10.0.x) szállított natív SQL Server-ügyfél 10.0. Az SQL Server natív 10.5-ös ügyfele az SQL Server 2008 R2-vel (10.50.x) van szállítva. Az SQL Server 11.0-s natív ügyfelet az SQL Server 2012 (11.x) és az SQL Server 2014 (12.x) csomaggal szállítjuk.
| Módosult a viselkedés az SQL Server natív ügyfélprogramban az SQL Server 2005 óta (9.x) | Leírás |
|---|---|
| Az OLE DB-párnák csak a megadott léptékben lesznek. | Azon konverziók esetében, ahol a konvertált adatokat a rendszer elküldi a kiszolgálónak, az SQL Server natív ügyfele (az SQL Server 2008-tól kezdve (10.0.x)) az adatokban csak a datetime értékek |
| Az ICommandWithParameter::SetParameterInfo DBTYPE_DBTIMESTAMP ellenőrzése. | Az SQL Server natív ügyfele (az SQL Server 2008-as (10.0.x) verziójától kezdve) implementálja a bScale OLE DB-követelményét az ICommandWithParameter::SetParameterInfo fájlban, hogy a DBTYPE_DBTIMESTAMP tört másodperces pontosságára legyen beállítva. |
| A |
Az SQL Server natív ügyfélprogram 10.0-s verziójától kezdve (SQL Server 2008 (10.0.x)) |
| Az SQLSetDescRec, az SQLBindParameter és az SQLBindCol mostantól konzisztencia-ellenőrzést végez. | Az SQL Server natív ügyfél 10.0-s verziójának beállítása előtt a SQL_DESC_DATA_PTR beállítása nem okozott konzisztencia-ellenőrzést az SQLSetDescRec, az SQLBindParameter vagy az SQLBindCol leíró típusának konzisztencia-ellenőrzéséhez. |
| Az SQLCopyDesc mostantól elvégzi a leírók konzisztencia-ellenőrzését. | Az SQL Server Native Client 10.0 előtt az SQLCopyDesc nem végzett konzisztencia-ellenőrzést, amikor a SQL_DESC_DATA_PTR mező egy adott rekordon lett beállítva. |
| Az SQLGetDescRec már nem végez leírókonzisztencia-ellenőrzést. | Az SQL Server Native Client 10.0 előtt az SQLGetDescRec leíró konzisztencia-ellenőrzést végzett a SQL_DESC_DATA_PTR mező beállításakor. Erre nem volt szükség az ODBC-specifikációban, és az SQL Server natív ügyfél 10.0-s (SQL Server 2008 (10.0.x)) és újabb verzióiban ez a konzisztencia-ellenőrzés már nem történik meg. |
| Eltérő hibaüzenet jelenik meg, ha a dátum kívül esik a tartományon. | A datetime típus esetében az SQL Server natív ügyfele (az SQL Server 2008-tól kezdve (10.0.x)) eltérő hibaszámot ad vissza a korábbi verziókban visszaadottnál egy tartományon kívüli dátumhoz. Pontosabban: Az SQL Server natív ügyfél 9.0 22007-es értéket adott vissza a sztringév összes tartományon kívüli értékéhez datetime, és az SQL Server natív ügyfele 10.0-s verziótól kezdve (SQL Server 2008 (10.10.0) 0.x)) 22008-at ad vissza, ha a dátum az datetime2 által támogatott tartományon belül van, de a datetime vagy smalldatetimeáltal támogatott tartományon kívül esik. |
| dátum/idő érték tört másodpercet csonkít, és nem kerekít, ha a kerekítés megváltoztatja a napot. | Az SQL Server natív ügyfél 10.0-s verziójának használata előtt a kiszolgálónak küldött dátum/idő értékek |
| Lehetséges másodpercek csonkolása datetime értékhez. | Az SQL Server 2008 (10.0.x) Natív ügyfélprogrammal (vagy újabb verzióval) készült, SQL Server 2005-kiszolgálóhoz csatlakozó alkalmazás másodpercekig és tört másodpercig csonkol a kiszolgálónak küldött adatok időarányához, ha DBTYPE_DBTIMESTAMP (OLE DB) vagy SQL_TIMESTAMP (ODBC) típusazonosítóval és 0 skálával rendelkező datetime oszlophoz kapcsolódik. Például: Bemeneti adatok: 1994-08-21 21:21:36.000 Beszúrt adatok: 1994-08-21 21:21:00.000 |
| Az OLE DB adatátalakítása DBTYPE_DBTIME-ról DBTYPE_DATE már nem okozhatja a napot. | Az SQL Server natív ügyfél 10.0-s verziójának használata előtt, ha egy DBTYPE_DATE idő része éjfél után fél másodpercen belül volt, az OLE DB konverziós kódja miatt a nap megváltozott. Az SQL Server natív ügyfélprogram 10.0-s verziótól kezdve a nap nem változik (a tört másodpercek csonkoltak és nem kerekítve vannak). |
| IBCPSession::BCColFmt konverziós változások. | Az SQL Server natív ügyfélprogram 10.0-s verziójától kezdve az IBCPSession::BCOColFmt használatával az SQLDATETIME vagy az SQLDATETIME sztringtípussá alakításához a rendszer a törtértéket exportálja. Ha például AZ SQLDATETIME típust SQLNVARCHARMAX típusra konvertálja, az SQL Server natív ügyfél korábbi verzióit adja vissza 1989-02-01 00:00:00. Az SQL Server natív ügyfél 10.0-s és újabb verziói 1989-02-01 00:00:00.0000000 értéket ad vissza. |
| Az elküldött adatok méretének meg kell egyeznie a SQL_LEN_DATA_AT_EXEC megadott hosszúságával. | A SQL_LEN_DATA_AT_EXEC használatakor az adatok méretének meg kell egyeznie a SQL_LEN_DATA_AT_EXEC megadott hosszúsággal. Használhatja a SQL_DATA_AT_EXEC, de a SQL_LEN_DATA_AT_EXEC használata teljesítménybeli előnyökkel járhat. |
| A BCP API-t használó egyéni alkalmazások mostantól figyelmeztetést láthatnak. | A BCP API figyelmeztető üzenetet fog generálni, ha az adathossz nagyobb, mint egy mező megadott hossza minden típus esetében. Korábban ez a figyelmeztetés csak karaktertípusokra lett megadva, de nem lesz minden típushoz kiadva. |
| Ha egy üres sztringet beszúr egy dátum/idő típusú sql_variant, hibát okoz. | Az SQL Server natív ügyfél 9.0-s fájljában egy üres sztring beszúrása egy dátum/idő típusú sql_variant nem eredményezett hibát. Az SQL Server natív ügyfél 10.0-s (és újabb) verziója helyesen generál hibát ebben a helyzetben. |
| Szigorúbb SQL_C_TYPE _TIMESTAMP és DBTYPE_DBTIMESTAMP paraméterérvényesítés. | Az SQL Server 2008 (10.0.x) natív ügyfele előtt dátum/idő értékeket úgy kerekítették, hogy illeszkedjenek az SQL Server dátum/idő és smalldatetime oszlopainak skálájához. Az SQL Server 2008 (10.0.x) natív ügyfél (és újabb verziók) az ODBC-mag specifikációjában meghatározott szigorúbb érvényesítési szabályokat alkalmazza tört másodpercre. Ha egy paraméterérték nem konvertálható SQL-típussá az ügyfélkötés által megadott vagy vélelmezett skálával a záró számjegyek csonkolása nélkül, a rendszer hibát ad vissza. |
| Az SQL Server eltérő eredményeket adhat vissza egy eseményindító futtatásakor. | Az SQL Server 2008 -ban (10.0.x) bevezetett módosítások miatt előfordulhat, hogy egy alkalmazás eltérő eredményeket ad vissza egy utasításból, amely miatt egy eseményindító futtatása NOCOUNT OFF volt érvényben. Ebben az esetben előfordulhat, hogy az alkalmazás hibát okoz. A hiba elhárításához állítsa NOCOUNT ON az eseményindítóban, vagy hívja meg az SQLMoreResults parancsot, hogy lépjen a következő eredményre. |