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 Systeem (PDW)
SQL-database in Microsoft Fabric
OLE DB-stuurprogramma downloaden
Er zijn een aantal verschillen tussen OLE DB Driver for SQL Server en Microsoft Data Access Components (MDAC); vanaf Windows Vista worden de datatoegangscomponenten nu Windows Data Access Components (of Windows DAC) genoemd. Hoewel beide native data-toegang bieden tot SQL Server-databases, is OLE DB Driver voor SQL Server ontworpen om de nieuwe functies van SQL Server te presenteren, terwijl tegelijkertijd achterwaartse compatibiliteit met eerdere versies behouden blijft.
Daarnaast, hoewel MDAC componenten bevat voor het gebruik van OLE DB, ODBC en ActiveX Data Objects (ADO), implementeert de OLE DB Driver voor SQL Server alleen OLE DB (hoewel ADO toegang heeft tot de functionaliteit van OLE DB Driver voor SQL Server).
OLE DB Driver voor SQL Server en MDAC verschillen in de volgende andere gebieden:
Gebruikers die ADO gebruiken om toegang te krijgen tot de OLE DB Driver voor SQL Server, kunnen minder filterfunctionaliteit ervaren dan wanneer ze de SQL OLE DB-provider hebben gebruikt.
Als een ADO-applicatie OLE DB Driver voor SQL Server gebruikt en probeert een berekende kolom bij te werken, wordt een foutmelding gemeld. Bij MDAC werd de update geaccepteerd maar genegeerd.
OLE DB Driver voor SQL Server is één zelfstandig dynamisch linkbibliotheekbestand (DLL). De openbaar blootgestelde interfaces zijn tot een minimum beperkt, zowel om distributie te vergemakkelijken als om de beveiligingsblootstelling te beperken.
Alleen OLE DB-interfaces worden ondersteund.
De OLE DB-driver voor SQL Server-namen verschillen van namen die met MDAC worden gebruikt.
Gebruikerstoegankelijke functionaliteit die door MDAC-componenten wordt geleverd, is beschikbaar bij gebruik van OLE DB Driver voor SQL Server. Dit omvat, maar is niet beperkt tot, het volgende: verbindingspooling, ADO-ondersteuning en ondersteuning voor clientcursors. Wanneer een van deze functies wordt gebruikt, levert OLE DB Driver for SQL Server alleen database-connectiviteit. MDAC biedt functionaliteit zoals tracing, beheerscontroles en prestatietellers.
Applicaties kunnen OLE DB-kerndiensten gebruiken met OLE DB Driver voor SQL Server, maar als ze de OLE DB cursor-engine gebruiken, moeten ze de optie voor datatypecompatibiliteit gebruiken om mogelijke problemen te vermijden omdat de cursor-engine geen kennis heeft van de nieuwe SQL Server 2005 (9.x) datatypes.
OLE DB Driver voor SQL Server ondersteunt toegang tot eerdere SQL Server-databases.
OLE DB Driver voor SQL Server bevat geen XML-integratie. OLE DB Driver voor SQL Server ondersteunt SELECT ... VOOR XML-query's, maar ondersteunt geen andere XML-functionaliteit. De OLE DB Driver for SQL Server ondersteunt echter wel het xml-datatype dat werd geïntroduceerd in SQL Server 2005 (9.x).
OLE DB Driver for SQL Server ondersteunt het configureren van client-side netwerkbibliotheken met alleen verbindingsstringattributen. Als je een meer volledige netwerkbibliotheekconfiguratie nodig hebt, moet je SQL Server Configuration Manager gebruiken.
MDAC-verbindingsstrings staan een Booleaanse waarde (waar) toe voor het Trusted_Connection trefwoord. Een OLE DB Driver voor SQL Server-verbindingsstring moet ja of nee gebruiken.
Er zijn kleine wijzigingen geweest in waarschuwingen en fouten. Waarschuwingen en fouten die door de server worden teruggegeven, behouden nu dezelfde ernst wanneer ze worden doorgegeven aan de OLE DB-driver voor SQL Server. Je moet ervoor zorgen dat je je applicatie grondig hebt getest als je afhankelijk bent van het vangen van bepaalde waarschuwingen en fouten.
OLE DB Driver voor SQL Server heeft strengere foutcontrole dan MDAC, wat betekent dat sommige applicaties die niet strikt voldoen aan de OLE DB-specificaties zich anders kunnen gedragen. Zo handhaafde de SQLOLEDB-provider niet de regel dat parameternamen moeten beginnen met '@' voor resultaatparameters, maar de OLE DB Driver voor SQL Server wel.
De OLE DB-driver voor SQL Server gedraagt zich anders dan MDAC wat betreft mislukte verbindingen. Bijvoorbeeld geeft MDAC gecachte eigenschapswaarden terug voor een verbinding die is mislukt, terwijl OLE DB Driver for SQL Server een foutmelding rapporteert aan de aanroepende applicatie.
OLE DB Driver voor SQL Server genereert geen Visual Studio Analyzer-gebeurtenissen, maar genereert in plaats daarvan Windows-traceringsgebeurtenissen.
OLE DB Driver voor SQL Server kan niet met perfmon worden gebruikt. Perfmon is een Windows-tool die alleen gebruikt kan worden met DSN's die de MDAC SQLODBC-driver gebruiken die bij Windows is inbegrepen.
Wanneer OLE DB Driver voor SQL Server wordt verbonden met SQL Server 2005 (9.x) en latere versies, wordt serverfout 16947 als SQL_ERROR teruggegeven. Deze fout treedt op wanneer een gepositioneerde update of verwijdering niet kan bijwerken of een rij verwijdert. Bij MDAC wordt bij het verbinden met een versie van SQL Server serverfout 16947 als waarschuwing (SQL_SUCCESS_WITH_INFO) teruggegeven.
OLE DB Driver voor SQL Server implementeert de IDBDataSourceAdmin-interface , een optionele OLE DB-interface die eerder niet was geïmplementeerd, maar alleen de CreateDataSource-methode van deze optionele interface is geïmplementeerd. Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.
De OLE DB Driver voor SQL Server geeft synoniemen terug in de TABLES en TABLE_INFO schema-rijsets, waarbij TABLE_TYPE op SYNONIEM staat.
Retourwaarden van het datatype varchar(max),nvarchar(max),varbinary(max), xml, udt of andere grote objecttypen kunnen niet worden teruggegeven aan clientversies van vóór SQL Server 2005 (9.x). Als je deze typen als retourwaarden wilt gebruiken, moet je OLE DB Driver voor SQL Server gebruiken.
MDAC staat toe dat de volgende statements worden uitgevoerd aan het begin van handmatige en impliciete transacties, maar OLE DB Driver for SQL Server doet dat niet. Ze moeten in autocommit modus worden uitgevoerd.
Alle full-text bewerkingen (index en catalogus DDL)
Alle databasebewerkingen (database aanmaken, database wijzigen, database verwijderen)
Configureren
Afsluiten
Doden
Backup
Wanneer MDAC-applicaties verbinding maken met SQL Server, zullen de datatypes die in SQL Server 2005 (9.x) zijn geïntroduceerd verschijnen als SQL Server 2000 (8.x)-compatibele datatypen, zoals weergegeven in de volgende tabel.
SQL Server 2005-type SQL Server 2000-type varchar(max) tekst nvarchar(max) ntext varbinary(max) image UDT varbinary xml ntext Deze typemapping beïnvloedt de waarden die worden teruggegeven voor kolommetadata. Een tekstkolom heeft bijvoorbeeld een maximale grootte van 2.147.483.647, maar OLE DB Driver for SQL Server rapporteert de maximale grootte van varchar(max) -kolommen als 2.147.483.647 of -1, afhankelijk van het platform.
OLE DB Driver for SQL Server staat ambiguïteit toe in verbindingsstrings (bijvoorbeeld, sommige trefwoorden kunnen meer dan eens worden gespecificeerd, en conflicterende trefwoorden kunnen worden toegestaan met resolutie op basis van positie of precedentie) om redenen van achterwaartse compatibiliteit. Toekomstige releases van HET OLE DB-stuurprogramma voor SQL Server staan mogelijk geen dubbelzinnigheid toe in verbindingsreeksen. Het is goede praktijk bij het aanpassen van applicaties om OLE DB Driver voor SQL Server te gebruiken om afhankelijkheid van verbindingsstringambiguïteit te elimineren.
Als je een OLE DB-aanroep gebruikt om transacties te starten, is er een verschil in gedrag tussen OLE DB Driver voor SQL Server en MDAC; transacties beginnen onmiddellijk met OLE DB Driver voor SQL Server, maar transacties beginnen na de eerste database-toegang met MDAC. Dit kan het gedrag van opgeslagen procedures en batches beïnvloeden, omdat SQL Server vereist dat @@TRANCOUNT hetzelfde is nadat een batch of opgeslagen procedure is uitgevoerd, zoals toen de batch of opgeslagen procedure begon.
Met OLE DB Driver voor SQL Server zal ITransactionLocal::BeginTransaction ervoor zorgen dat een transactie onmiddellijk wordt gestart. Met MDAC werd de transactiestart vertraagd totdat de applicatie een instructie uitvoerde die een transactie in impliciete transactiemodus vereiste. Zie SET IMPLICIT_TRANSACTIONS (Transact-SQL)voor meer informatie.
Zowel OLE DB Driver voor SQL Server als MDAC ondersteunen read committed transaction isolation met behulp van row versioning, maar alleen OLE DB Driver for SQL Server ondersteunt snapshot transaction isolation. (In programmeertermen is read committed transaction isolation met rijversiebeheer hetzelfde als read-committed transacties.)