Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-adatbázis a Microsoft Fabricben
Számos különbség van az OLE DB Driver for SQL Server és a Microsoft Data Access Components (MDAC) között; a Windows Vista-tól kezdve az adathozzáférési komponenseket most Windows Data Access Components-nek (vagy Windows DAC-nak) nevezik. Bár mindkettő natív adathozzáférést biztosít az SQL Server adatbázisokhoz, az OLE DB Driver for SQL Server arra lett tervezve, hogy feltárja az SQL Server új funkcióit, miközben megőrzi a korábbi verziókkal való visszafelé kompatibilitást.
Ezen túl, bár az MDAC tartalmaz komponenseket az OLE DB, ODBC és ActiveX Data Objects (ADO) használatához is, az OLE DB Driver for SQL Server csak az OLE DB-t valósítja meg (bár az ADO hozzáférhet az SQL Server OLE DB Driver funkcióihoz).
Az OLE DB Driver for SQL Server és MDAC a következő területeken különbözik:
Azok a felhasználók, akik az ADO-val hozzáférnek az SQL Server OLE DB Driveréhez, kevesebb szűrési funkcióval találkozhatnak, mint amikor a SQL OLE DB szolgáltatóhoz fordultak.
Ha egy ADO alkalmazás az SQL Server OLE DB Driver-t használja, és megpróbál frissíteni egy kiszámított oszlopot, hiba jelenthető. Az MDAC-nál a frissítést elfogadták, de figyelmen kívül hagyták.
Az OLE DB Driver for SQL Server egy önálló dinamikus link könyvtár (DLL) fájl. A nyilvánosan elérhető interfészeket minimálisra csökkentették, mind a terjesztés megkönnyítése érdekében, mind a biztonsági kitettség csökkentése érdekében.
Csak az OLE DB interfészek támogatottak.
Az SQL Server OLE DB Driver nevei eltérnek az MDAC-nál használt nevektől.
Az MDAC komponensek által biztosított felhasználói hozzáférésű funkciók elérhetők, ha az SQL Server OLE DB Driver használatában is elérhető. Ez magában foglalja, de nem kizárólagosan, a következőket: kapcsolati pooling, ADO támogatás és kliens kurzor támogatás. Ha bármelyik ilyen funkciót használják, az OLE DB Driver for SQL Server csak adatbázis-kapcsolatot biztosít. Az MDAC olyan funkciókat kínál, mint a követés, menedzsment vezérlők és teljesítményszámlálók.
Az alkalmazások használhatják az OLE DB magszolgáltatásokat az SQL Server OLE DB Driver segítségével, de ha az OLE DB kurzormotort használják, akkor az adattípus kompatibilitási opciót kell használniuk, hogy elkerüljék a kurzormotor esetleges problémáit, amelyek nem ismerik az új SQL Server 2005 (9.x) adattípusokat.
Az OLE DB Driver for SQL Server támogatja a korábbi SQL Server adatbázisokhoz való hozzáférést.
Az SQL Server OLE DB Driver nem tartalmaz XML integrációt. Az SQL Server OLE DB Driver támogatja a SELECT ... Az FOR XML lekérdezések, de nem támogatja semmilyen más XML funkciót. Ugyanakkor az OLE DB Driver for SQL Server támogatja az SQL Server 2005 (9.x) által bevezetett xml adattípust.
Az OLE DB Driver for SQL Server támogatja az ügyféloldali hálózati könyvtárak konfigurálását kizárólag kapcsolati string attribútumok alapján. Ha teljesebb hálózati könyvtár konfigurációra van szükséged, akkor az SQL Server Konfigurációkezelőt kell használnod.
Az MDAC csatlakozási láncok lehetővé teszik a Trusted_Connection kulcsszó számára egy Boolean értéket (true). Az SQL Server kapcsolati láncra OLE DB illesztőprogramnak igent vagynemet kell használnia.
Kisebb változások történtek a figyelmeztetésekben és hibákban. A szerver által visszaküldött figyelmeztetések és hibák most ugyanaz a súlyosságú maradnak, amikor továbbítják az SQL Server OLE DB Driver-nek. Győződjön meg róla, hogy alaposan tesztelte az alkalmazást, ha bizonyos figyelmeztetéseket és hibákat fogsz el.
Az OLE DB Driver for SQL Server szigorúbb hibaellenőrzést alkalmaz, mint az MDAC, ami azt jelenti, hogy néhány alkalmazás, amely nem felel meg szigorúan az OLE DB specifikációinak, másként viselkedhet. Például az SQLOLEDB szolgáltató nem érvényesítette azt a szabályt, hogy a paraméterneveknek '@'-val kell kezdődniük az eredményparaméterekhez, de az SQL Server OLE DB Driver ezt teszi.
Az OLE DB Driver for SQL Server eltér az MDAC-tól a meghibásodott kapcsolatok esetén. Például az MDAC egy meghibásodott kapcsolat gyorsítótára értékeit adja vissza, míg az SQL Server OLE DB Driver hibát jelent a hívó alkalmazásnak.
Az SQL Server OLE DB Driver nem generál Visual Studio Analyzer eseményeket, hanem Windows követési eseményeket.
Az OLE DB Driver for SQL Server nem használható perfmonnal. A Perfmon egy Windows eszköz, amely csak olyan DSN-ekkel használható, amelyek a Windows MDAC SQLODBC illezőprogramját használják.
Amikor az OLE DB Driver for SQL Server csatlakozik SQL Server 2005 (9.x) és későbbi verziókhoz, a szerver 16947-es hiba SQL_ERROR jelenik meg. Ez a hiba akkor fordul elő, ha egy pozicionált frissítés vagy törlés nem képes frissíteni vagy törölni egy sort. MDAC-nál, amikor SQL Server bármely verziójához csatlakozunk, a szerver 16947-es hiba jelenik meg figyelmeztetésként (SQL_SUCCESS_WITH_INFO).
Az OLE DB Driver for SQL Server az IDBDataSourceAdmin interfészt valósítja meg, amely opcionális OLE DB interfész, amelyet korábban nem valósítottak meg, de csak ennek az opcionális interfésznek a CreateDataSource módszerét valósítják meg. Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását.
A OLE DB Driver for SQL Server szinonimákat ad vissza a TÁBLÁZATOKBAN és TABLE_INFO séma sorhalmazban, TABLE_TYPE beállítva .SYNONYM
A varchar(max), nvarchar(max),varbinary(max),xml, udt vagy más nagy objektumtípusok visszaküldési értékei nem térhetők vissza SQL Server 2005 (9.x) előtti kliensverziókba. Ha ezeket a típusokat akarod használni visszaküldési értékként, az SQL Server OLE DB Driver-t kell használni.
Az MDAC lehetővé teszi, hogy a következő utasításokat végrehajtsák a kézi és implicit tranzakciók elején, de az OLE DB Driver for SQL Server nem. Ezeket automatikus commitálás módban kell végrehajtani.
Minden teljes szöveges művelet (index és katalógus DDL)
Minden adatbázis-művelet (adatbázis létrehozása, adatbázis módosítása, adatbázis eltávolítása)
Újrakonfigurálása
Leállítás
Megöl
Backup
Amikor az MDAC alkalmazások csatlakoznak az SQL Serverhez, az SQL Server 2005 (9.x) által bevezetett adattípusok SQL Server 2000 (8.x)-kompatibilis adattípusokként jelennek meg, ahogy az alábbi táblázatban látható.
SQL Server 2005 típus SQL Server 2000 típus varchar(max) text nvarchar(max) kontextus varbinary(max) image udt varbinary xml kontextus Ez a típusú leképezés befolyásolja az oszlop metaadatainak visszaadott értékeit. Például egy szövegoszlop maximális mérete 2,147,483,647, de az SQL Server OLE DB Driver a varchar(max) oszlopok maximális méretét 2,147,483,647 vagy -1 számú, platformtól függően.
Az OLE DB Driver for SQL Server lehetővé teszi a kapcsolati láncok kétértelműségét (például egyes kulcsszavakat többször is megadhatnak, és ellentmondó kulcsszavakat lehet a pozíció vagy prioritás alapján felbontásban engedélyezni) visszafelé kompatibilitás miatt. Az SQL Server OLE DB Driver jövőbeli kiadásai nem feltétlenül engedik a kapcsolati láncok kétértelműségét. Jó gyakorlat, amikor az alkalmazásokat módosítjuk az SQL Server OLE DB Driver használatára, hogy megszüntessék a kapcsolati stringek bizonytalanságát a függőséget.
Ha OLE DB hívást használsz a tranzakciók indításához, eltérés van a viselkedésben az SQL Server OLE DB Driver és az MDAC között; a tranzakciók azonnal kezdődnek az SQL Server OLE DB Driver segítségével, de a tranzakciók az első MDAC-os adatbázis-hozzáférés után kezdődnek. Ez befolyásolhatja a tárolt eljárások és kötetek viselkedését, mivel az SQL Server megköveteli, hogy @@TRANCOUNT ugyanaz legyen a batch vagy tárolt eljárás befejezése után, mint amikor a csomag vagy tárolt eljárás elindult.
Az OLE DB Driver for SQL Server esetén az ITransactionLocal::BeginTransaction azonnal indít egy tranzakciót. Az MDAC-nál a tranzakció kezdete késlekedett, amíg az alkalmazás nem hajtott végre egy olyan utasítást, amely implicit tranzakciós módban szükséges tranzakciót igényel. További információért lásd SET IMPLICIT_TRANSACTIONS (Transact-SQL).
Mind az OLE DB Driver for SQL Server, mind az MDAC támogatja a olvasási elkötelezett tranzakció izolálását sorverziózással, de csak az OLE DB Driver for SQL Server támogatja a snapshot tranzakciós izolálást. (Programozási szempontból a read committed transaction izolálás sorverziózással ugyanaz, mint a read-committed tranzakció.)