Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
OLE DB-stuurprogramma downloaden
Dit artikel bespreekt de baanbrekende wijzigingen in de OLE DB Driver for SQL Server sinds de SQL Server Native Client in SQL Server 2005 (9.x).
Wanneer je upgrade van Microsoft Data Access Components (MDAC) naar OLE DB Driver for SQL Server, kun je ook gedragsverschillen zien. Zie Een toepassing bijwerken naar OLE DB-stuurprogramma voor SQL Server vanuit MDAC voor meer informatie.
SQL Server Native Client 9.0 werd geleverd met SQL Server 2005 (9.x). SQL Server Native Client 10.0 werd geleverd met SQL Server 2008 (10.0.x). SQL Server Native Client 10.5 werd geleverd met SQL Server 2008 R2 (10.50.x). SQL Server Native Client 11.0 werd geleverd met SQL Server 2012 (11.x) en SQL Server 2014 (12.x).
| Veranderd gedrag in OLE DB Driver for SQL Server vergeleken met SQL Server 2005 (9.x) Native Client | Description |
|---|---|
| OLE DB padt alleen op de gedefinieerde schaal. | Voor conversies waarbij geconverteerde data naar de server wordt gestuurd, vult de OLE DB Driver for SQL Server alleen de maximale lengte van datetime-waarden op met nullen in data. SQL Server Native Client 9.0 is opgevuld met 9 cijfers. |
| Valideer DBTYPE_DBTIMESTAMP voor ICommandWithParameter::SetParameterInfo. | OLE DB Driver for SQL Server implementeert de OLE DB-eis voor bScale in ICommandWithParameter::SetParameterInfo om te worden ingesteld op de precisie van fractieseconden voor DBTYPE_DBTIMESTAMP. |
| De sp_columns stored procedure geeft nu "NEE" in plaats van "NEE" terug voor de kolom IS_NULLABLE. | In OLE DB Driver for SQL Server geeft sp_columns opgeslagen procedure nu "NEE" in plaats van "NEE" voor een IS_NULLABLE kolom terug. |
| Andere foutmelding wordt gegeven wanneer de datum buiten bereik is. | Voor het datumtijdtype wordt een ander foutnummer teruggegeven door de OLE DB Driver for SQL Server voor een datum buiten bereik dan in eerdere versies. Specifiek gaf SQL Server Native Client 9.0 22007 terug voor alle jaarwaarden buiten het bereik in stringconversies naar datetime, en OLE DB Driver for SQL Server geeft 22008 terug wanneer de datum binnen het bereik ligt dat door datetime2 wordt ondersteund, maar buiten het bereik dat door datetime of smalldatetime wordt ondersteund. |
| Datumtijdwaarde kortst fracties van seconden af en niet af als afronding de dag verandert. | Voor SQL Server Native Client 10.0 was het gedrag van de client voor datetime-waarden die naar de server werden gestuurd om deze af te ronden tot het dichtstbijzijnde 1/300ste van een seconde. In de OLE DB Driver for SQL Server veroorzaakt dit scenario een afkorting van fracties van seconden als afronding de dag verandert. |
| Mogelijke afkorting van seconden voor de datetime-waarde . | Een applicatie die met OLE DB Driver for SQL Server is gebouwd en verbinding maakt met een server uit SQL Server 2005, zal seconden en fracties van seconden afkorten voor het tijdsdeel van de data die naar de server wordt gestuurd als je bindt aan een datetime-kolom met een type-identificatie van DBTYPE_DBTIMESTAMP (OLE DB) of SQL_TIMESTAMP (ODBC) en een schaal van 0. Voorbeeld: Invoergegevens: 1994-08-21 21:21:36.000 Ingevoegde gegevens: 1994-08-21 21:21:00.000 |
| OLE DB-dataconversie van DBTYPE_DBTIME naar DBTYPE_DATE kan de dag niet langer veranderen. | Voor SQL Server Native Client 10.0, als het tijdsdeel van een DBTYPE_DATE binnen een halve seconde van middernacht lag, zorgde OLE DB-conversiecode ervoor dat de dag veranderde. In de OLE DB Driver for SQL Server verandert de dag niet (fracties van seconden worden afgebroken en niet afgerond). |
| IBCPSession::BCColFmt-conversiewijzigingen. | In OLE DB Driver for SQL Server, wanneer je IBCPSession::BCOColFmt gebruikt om SQLDATETIME of SQLDATETIME om te zetten naar een stringtype, wordt een fractiewaarde geëxporteerd. Bijvoorbeeld, bij het omzetten van type SQLDATETIME naar type SQLNVARCHARMAX, kwamen versies vóór SQL Server Native Client 10.0 terug 1989-02-01 00:00:00. OLE DB Driver for SQL Server retourneert 1989-02-01 00:00:00.0000000. |
| Aangepaste applicaties die de BCP API gebruiken, kunnen nu een waarschuwing zien. | De BCP API zal een waarschuwingsbericht genereren als de gegevenslengte groter is dan de gespecificeerde lengte voor een veld voor alle typen. Voorheen werd deze waarschuwing alleen gegeven voor karaktertypes, maar zal niet voor alle types worden uitgegeven. |
| Het invoegen van een lege string in een sql_variant grens als datum/tijd-type genereert een fout. | In SQL Server Native Client 9.0 veroorzaakte het invoegen van een lege string in een sql_variant bound als datum/tijd-type geen fout. OLE DB Driver for SQL Server genereert in deze situatie correct een foutmelding. |
| SQL Server kan verschillende resultaten geven wanneer een trigger draait. | Wijzigingen geïntroduceerd in SQL Server 2008 (10.0.x) konden ervoor zorgen dat een applicatie andere resultaten terugkreeg dan een instructie die een trigger deed draaien wanneer NOCOUNT OFF actief was. In deze situatie kan je applicatie een fout genereren. Om deze fout op te lossen, zet NOCOUNT je ON in de trigger. |