Idézze fel fiatalsága boldog időszakát, amikor az ábécéleves volt a kedvenc étele. Gondoljon ezekre a szép emlékekre, amint az ábécéleves adatbázis-verzióját kóstolgatjuk. A következő szakaszok részletezik az adatbázisok kapcsolódási sztringekkel való beolvasásának alapjait és az adatbázis-programozási felületek használatát az Access VBA-kódjában.
Tartalom
ODBC-illesztőprogram vagy OLE DB-szolgáltató használata
Programozott kezelőfelület az SQL Serverhez az Accessben
Az ODBC-illesztőprogram verzióinak összefoglalása
Az OLE DB-szolgáltató verzióinak összefoglalása
ODBC-illesztőprogram vagy OLE DB-szolgáltató használata
A kapcsolati sztringek már hosszú ideje jelen vannak. Az Access felhasználói felületén vagy a VBA-kódban megadhat egy formázott kapcsolati sztringet. A kapcsolati sztring (akár ODBC, akár OLE DB) közvetlenül az adatbázisnak adja át az adatokat, többek között a kiszolgáló helyét, az adatbázis nevét, a biztonság típusát és egyéb hasznos beállításokat. Például:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Először az SQL Server Native Client (SNAC), egy különálló tár állt rendelkezésre, amely ODBC és OLEDB technológiát tartalmazott, és továbbra is elérhető az SQL Server 2005-ös verzióihoz a 2012-es verzión keresztül. Számos régi alkalmazás használt SNAC tárat, amely továbbra is támogatott az előző verziókkal való kompatibilitáshoz, új alkalmazásfejlesztésekhez azonban nem ajánljuk. Az ODBC-illesztőprogramok későbbi különálló és letölthető verzióit kell használnia.
ODBC-illesztőprogramok
A nyílt adatbázis-kapcsolat (ODBC) olyan protokoll, amely az Access-adatbázisok külső adatforrásokkal, például a Microsoft SQL Serverrel való összekapcsolásához használható. Általában fájladatforrásokat (más néven DSN-fájlokat) használva vesz fel kapcsolati sztringet, amely esetben a FILEDSN kulcsszót használja a kapcsolati karakterláncban, illetve tárolja a beállításjegyzékben, és ebben az esetben a DSN kulcsszót kell használnia. Másik lehetőségként a VBA használatával is megadhatja ezeket a tulajdonságokat egy „DSN nélküli” kapcsolati sztring használatával.
Az évek során az ODBC-illesztőprogramok kiadása három fázisban történt:
-
2005 előtt az ODBC-illesztőprogramok az eredetileg Microsoft Data Access Components (MDAC) néven ismert Windows Data Access Components (WDAC) szolgáltatáshoz tartoztak. Ezek az összetevők továbbra is megtalálhatók a Windows rendszerben az előző verziókkal való kompatibilitás érdekében. További információt a Microsoft vagy Windows Data Access Components című cikkben talál.
-
SNAC-hoz tartozó ODBC-illesztőprogramok az SQL Server 2005-höz az SQL Server 2012-n keresztül.
-
Az SQL Server 2012 után az ODBC-illesztőprogramokat egyedileg adták ki, és támogatást tartalmaztak az SQL Server szolgáltatásaihoz.
Az új fejlesztés érdekében kerülje az első két fázisból származó ODBC-illesztőprogramok használatát, és használja a harmadik fázisba tartozó ODBC-illesztőprogramokat.
OLE DB-szolgáltatók
Az OLE DB (Object Linking and Embedding, Database) olyan újabb protokoll, amely az Access-adatbázisok külső adatforrásokkal, például a Microsoft SQL Serverrel való összekapcsolásához használható. Az OLE DB-nek nincs szüksége DSN-re, és teljes hozzáférést biztosít az ODBC-adatforrásokhoz és az ODBC-illesztőprogramokhoz is.
Tipp Az Adatkapcsolat tulajdonságai párbeszédpanel általában egy OLE DB-kapcsolati sztring hozzáadására használható. Bár az Accessből nincs lehetősége megnyitni az Adatkapcsolat tulajdonságai párbeszédpanelt, a Windows Intézőben hozzon létre egy üres .txt fájlt, módosítsa a fájltípust .udl típusra, majd kattintson duplán a fájlra. A kapcsolati karakterlánc létrehozását követően állítsa vissza a fájltípust a. txt fájlra.
Az évek során az OLE DB-szolgáltatók kiadása három fázisban történt:
-
2005 előtt az OLE DB-szolgáltatók az eredetileg Microsoft Data Access Components (MDAC) néven ismert Windows Data Access Components (WDAC) szolgáltatáshoz tartoztak.
-
SQL Server 2005-höz tartozó OLE DB-szolgáltatók az SQL Server 2017-en keresztül. 2011-ben elavult.
-
2017-ben az SQL Server OLE DB-szolgáltatót visszaállították.
Az új megoldások fejlesztéséhez jelenleg javasolt verzió az OLE DB Driver 18 for SQL Server.
A teljesítmény optimalizálása ODBC-kapcsolati karakterlánccal
A teljesítmény optimalizálása érdekében minimalizálja a hálózati forgalmat, és csökkentse a többfelhasználós hozzáférést az SQL Server-adatbázishoz, a kapcsolati karakterláncok több rekordra való megosztásával a lehető legkevesebb kapcsolati karakterláncot használja. Habár az Ace egyszerűen továbbítja a kapcsolati sztringet a kiszolgálóhoz, az alábbi kulcsszavakat fogja érteni és használni: A DSN, a DATABASE, az UID, a PWD és a DRIVER segítségével minimalizálhatja az ügyfél és a kiszolgáló közötti kommunikációt.
Megjegyzés: Ha a külső adatforrással létesített ODBC-kapcsolat elvész, az Access automatikusan megkísérli az újbóli csatlakozást. Ha az újbóli próbálkozás sikeres, tovább folytathatja a munkát. Ha az újbóli próbálkozás sikertelen, a kapcsolattól nem függő objektumokat továbbra is használhatja. Az újracsatlakozáshoz zárja be és nyissa meg újra az Accesst.
Javaslatok az ODBC és az OLE DB használata esetén
Kerülje a kapcsolati sztring és az adatbázis-hozzáférési technológiák keverését. Használjon ODBC-kapcsolati sztringet a DAO-hoz. Használjon OLE DB-kapcsolati sztringet az ADO-hoz. Ha az alkalmazás a DAO és az ADO típust használó VBA-kódot tartalmaz, akkor a DAO és az OLE DB-szolgáltató ODBC-illesztőprogramját használhatja az ADO szolgáltatáshoz. Arra törekszünk, hogy a legújabb szolgáltatásokhoz és az ODBC-hez és az OLEDB-hez egyaránt támogatást nyújtsunk.
Az ODBC az illesztőprogram, az OLE DB pedig a szolgáltató kifejezést használja. A feltételek leírják az azonos típusú szoftverösszetevőt, de nem cserélhetők fel a kapcsolati sztring szintaxisában. Használja a helyes értéket a dokumentált formában.
Programozott kezelőfelület az SQL Serverhez az Accessben
Az Accessben két fő módon választhat programozott kezelőfelületet az SQL Server-adatbázishoz.
DAO
A DAO (Data Access Objects) absztrakt felületet biztosít az adatbázishoz. A DAO (Data Access Objects) a natív programozást lehetővé tevő objektumorientált modell, amellyel az Access és az SQL Server központjában hozhat létre, törölhet, módosíthat és listázhat objektumokat, táblákat, mezőket, indexeket, kapcsolatokat, lekérdezéseket, tulajdonságokat és külső adatbázisokat.
További információt A Microsoft Data Access Objects – referencia című cikkben talál.
ADO
Az ADO (ActiveX Data Objects) egy magas szintű programozási modellt biztosít, és az Accessben egy harmadik fél könyvtárára mutató hivatkozással érhető el. Az ADO egyszerűen megtanulható, és lehetővé teszi az ügyfélalkalmazás számára a különféle forrásokból (például az Accessből és az SQL Serverről) származó adatok elérését és kezelését. Elsődleges előnye a könnyű használat, a nagy sebesség, a kis memóriaigény és a kis helyigényű lemez. Az ADO ezenkívül támogatja a készítéshez használt és a webes alkalmazások fő funkcióit.
További információt a Microsoft ActiveX Data Objects – referencia és a Microsoft ActiveX Data Objects (ADO) című cikkben talál.
Melyiket érdemes választani?
VBA-kódot használó Access-megoldásokban a DAO és az ADO, valamint mindkettő használható adatbázis-illesztő technológiaként. Az Accessben továbbra is a DAO az alapértelmezett. Az összes űrlap, jelentés és Access-lekérdezés például DAO-t használ. Amikor azonban áttér az SQL Serverre, érdemes lehet az ADO használatával hatékonyabbá tenni a megoldást. A DAO és az ADO használatának eldöntését az alábbi általános útmutatások segítik.
Használja a DAO-t az alábbi esetekben:
-
írható/olvasható, kötött űrlap létrehozása VBA használata nélkül;
-
helyi táblák lekérdezése;
-
adatok letöltése ideiglenes táblákba;
-
átadó lekérdezések használata adatforrásként jelentésekhez és űrlapokhoz írásvédett módban;
-
TableDef- vagy QueryDef-objektum definiálása és használata a VBA-ban.
Használja az ADO-t az alábbi esetekben:
-
további optimalizálási módszerek használata, például aszinkron műveletek végrehajtása;
-
DDL-ről és DML-ről továbbított átadó lekérdezések futtatása;
-
SQL Server-adatok beolvasása közvetlenül rekordhalmazokon keresztül a VBA-ban;
-
egyszerűbb kódok írása bizonyos tevékenységekhez, például a Blobs-adatfolyamhoz;
-
tárolt eljárás közvetlen meghívása paraméterekkel, a VBA-ban egy parancssori objektum használatával.
Az ODBC-illesztőprogram verzióinak összefoglalása
Az alábbi táblázat összefoglalja az ODBC-illesztőprogram verzióival, a letöltési helyekkel és a szolgáltatások támogatásával kapcsolatos fontos információkat. Győződjön meg arról, hogy az illesztőprogram megfelelő (64 bites vagy 32 bites) verzióját használja (nem az Office, hanem a Windows verziója alapján). Ha a 32 bites verziós Accesst futtatja a 64 bites Windows rendszerben, telepítse a 64 bites illesztőprogramokat, amelyek az Accesshez szükséges, 32 bites összetevőket is tartalmazzák.
További információ: Kapcsolati sztringben szereplő kulcsszavak használata SQL Server Native Clienttel, Kiadási megjegyzések az SQL Serverhez tartozó ODBC-illesztőprogramhoz Windows (V17) rendszeren és A Microsoft ODBC Driver for SQL Server illesztőprogram szolgáltatásai Windows (V13, 11) rendszeren.
Az OLE DB-szolgáltató verzióinak összefoglalása
Az alábbi táblázat összefoglalja az OLE DB-szolgáltatók verzióival, a letöltési helyekkel és a szolgáltatások támogatásával kapcsolatos fontos információkat. Győződjön meg arról, hogy az illesztőprogram megfelelő (64 bites vagy 32 bites) verzióját használja (nem az Office, hanem a Windows verziója alapján). Ha a 32 bites verziós Accesst futtatja a 64 bites Windows rendszerben, telepítse a 64 bites illesztőprogramokat, amelyek az Accesshez szükséges, 32 bites összetevőket is tartalmazzák.
További információ: Kapcsolati sztringben szereplő kulcsszavak használata SQL Server Native Clienttel.
OLE DB-szolgáltató |
Verzió |
Letöltés |
Új szolgáltatások |
OLE DB Driver 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
OLE DB Driver for SQL Server szolgáltatás és Kiadási megjegyzések a Microsoft OLE DB Driver for SQL Server illesztőprogramhoz |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005–2012 |
Elavult, ne használja |
|
OLE DB Driver (SQLOLEDB) |
Elavult, ne használja |
Az ODBC-kulcsszó összefoglalása
Az alábbi táblázat összefoglalja az SQL Server által felismert ODBC-kulcsszavakat és a rendeltetésüket. Az Access csak egy részhalmazt ismer fel.
Kulcsszó |
Leírás |
Addr |
Az SQL Server-példányt futtató kiszolgáló hálózati címe. |
AnsiNPW |
Az ANSI által definiált viselkedések használatát határozza meg a NULL összehasonlítások, a karakter típusú adatok kitöltése, a figyelmeztetések és a NULL összefűzés (igen vagy nem) kezelésére. |
APP |
Az SQLDriverConnect függvény meghívására szolgáló alkalmazás neve. |
ApplicationIntent |
Az alkalmazás terhelési típusának deklarálása a kiszolgálóhoz való kapcsolódáskor (ReadOnly vagy ReadWrite). |
AttachDBFileName |
Csatolható adatbázis elsődleges fájljának a neve. |
AutoTranslate |
Azt adja meg, hogy az ANSI sztringek küldése az ügyfél vagy a kiszolgáló között történik-e, illetve Unicode-ra fordítja-e a rendszer (igen vagy nem). |
Database |
Az adatbázis neve. Leírás A kapcsolat célja. Driver Az SQLDrivers által visszaadott illesztőprogram neve. |
DSN |
Egy meglévő ODBC-felhasználó vagy rendszeradatforrás neve. Encrypt Azt adja meg, hogy a rendszer titkosítsa-e az adatokat, mielőtt a hálózaton keresztül elküldené őket (igen vagy nem). |
Failover_Partner |
Annak a feladatátvételi partnerkiszolgálónak a neve, amelyet akkor kell használni, ha nem lehet az elsődleges kiszolgálóval kapcsolatot létesíteni. |
FailoverPartnerSPN |
A feladatátvételi partner egyszerű szolgáltatásneve. |
Fallback |
Elavult kulcsszó. |
FileDSN |
Egy meglévő ODBC-fájladatforrás neve. Language Az SQL Server nyelve. |
MARS_Connection |
Az SQL Server 2005 (9.x) vagy újabb verzió kapcsolatán több aktív eredményhalmazt (MARS) ad meg (igen vagy nem). |
MultiSubnetFailover |
Megadja, hogy csatlakozik-e egy SQL Server-alapú rendelkezésre állási csoporthoz vagy egy feladatátvevő fürtpéldányhoz (igen vagy nem). |
Net |
A dbnmpntw nevesített csövet jelez, a dbmssocn pedig TCP/IP-t. |
PWD |
Az SQL Server bejelentkezési jelszava. |
QueryLog_On |
A hosszú ideig futó lekérdezések naplózását adja meg (igen vagy nem). |
QueryLogFile |
A hosszú ideig futó lekérdezések adatainak naplózásához használandó fájl teljes elérési útja és fájlneve. |
QueryLogTime |
Számjegyet tartalmazó sztring, amely megadja a hosszú ideig futó lekérdezések naplózási küszöbét (ezredmásodpercben). |
QuotedId |
Azt adja meg, hogy az SQL Server az idézőjelek használatakor ISO-szabályokat használ-e az SQL-utasításokban (igen vagy nem). |
Regional |
Azt adja meg, hogy az SQL Server Native Client ODBC-illesztőprogramja ügyfélbeállításokat használ-e a pénznemek, a dátumok és az időpontok adatainak karakterekre való konvertálásakor (igen vagy nem). |
SaveFile |
Egy olyan ODBC-adatforrásfájl neve, amelybe az aktuális kapcsolat attribútumait menti a rendszer, ha a kapcsolat sikeresen megtörtént. |
Server |
Egy SQL Server-példány neve: A hálózaton lévő kiszolgáló, egy IP-cím vagy a Konfigurációkezelő aliasa. |
ServerSPN |
A kiszolgáló egyszerű szolgáltatásneve. |
StatsLog_On |
Lehetővé teszi az SQL Server Native Client ODBC-illesztőprogram teljesítményadatai rögzítését. |
StatsLogFile |
Az SQL Server Native Client ODBC-illesztőprogram teljesítménystatisztikájának rögzítésére használt fájl teljes elérési útja és fájlneve. |
Trusted_Connection |
Azt adja meg, hogy a bejelentkezési ellenőrzéshez használja-e a Windows hitelesítési módot vagy az SQL Server-felhasználónevét vagy jelszavát (igen vagy nem). |
TrustServerCertificate |
A titkosítással történő használat során önaláírt kiszolgálótanúsítvány használatával teszi lehetővé a titkosítást. |
UID |
Az SQL Server bejelentkezési neve. |
UseProcForPrepare |
Elavult kulcsszó. |
WSID |
A munkaállomás azonosítója, annak a számítógépnek a hálózati neve, amelyen az alkalmazás található. |
Az OLE DB-kulcsszó összefoglalása
Az alábbi táblázat összefoglalja az SQL Server által felismert OLE DB-kulcsszavakat és a rendeltetésüket. Az Access csak egy részhalmazt ismer fel.
Kulcsszó |
Leírás |
Addr |
Az SQL Server-példányt futtató kiszolgáló hálózati címe. |
APP |
Az alkalmazást azonosító karakterlánc. |
ApplicationIntent |
Az alkalmazás terhelési típusának deklarálása a kiszolgálóhoz való kapcsolódáskor (ReadOnly vagy ReadWrite). |
AttachDBFileName |
Csatolható adatbázis elsődleges fájljának a neve. |
AutoTranslate |
Az OEM/ANSI-karakterek fordítását konfigurálja (igaz vagy hamis). |
Connect Timeout |
Az adatforrás inicializálásának befejeződéséhez szükséges idő (másodpercben). |
Current Language |
Az SQL Server nyelvének neve. |
Data Source |
A szervezet SQL Server-példányának neve. |
Database |
Az adatbázis neve. |
DataTypeCompatibility |
A használandó adattípus-kezelés módját jelző szám. |
Encrypt |
Azt adja meg, hogy a rendszer titkosítsa-e az adatokat, mielőtt a hálózaton keresztül elküldené őket (igen vagy nem). |
FailoverPartner |
Az adatbázis-tükrözéshez használt feladatátvételi kiszolgáló neve. |
FailoverPartnerSPN |
A feladatátvételi partner egyszerű szolgáltatásneve. |
Initial Catalog |
Az adatbázis neve. |
Initial File Name |
Az elsődleges fájl neve egy csatolható adatbázis teljes elérési útjával. |
Integrated Security |
Windows-hitelesítéshez (SSPI) használható. |
Language |
Az SQL Server nyelve. |
MarsConn |
Az SQL Server 2005 (9.x) vagy újabb verzió kapcsolatán több aktív eredményhalmazt (MARS) ad meg (igen vagy nem). |
Net |
Az a hálózati könyvtár, amellyel kapcsolatot létesíthet a szervezet SQL Server-példányával. |
Network Address |
A szervezet SQL Server-példányának hálózati címe. |
PacketSize |
Hálózati csomag mérete. Az alapértelmezett érték a 4096. |
Persist Security Info |
Azt adja meg, hogy engedélyezve van-e a biztonsági adatok megőrzése (igaz vagy hamis). |
PersistSensitive |
Azt adja meg, hogy engedélyezve van-e a bizalmas adatok megőrzése (igaz vagy hamis). |
Provider |
Az SQL Server Native Client esetén ez az SQLNCLI11. |
PWD |
Az SQL Server bejelentkezési jelszava. |
Server |
Egy SQL Server-példány neve: A hálózaton lévő kiszolgáló, egy IP-cím vagy a Konfigurációkezelő aliasa. |
ServerSPN |
A kiszolgáló egyszerű szolgáltatásneve. |
Timeout |
Az adatforrás inicializálásának befejeződéséhez szükséges idő (másodpercben). |
Trusted_Connection |
Azt adja meg, hogy a bejelentkezési ellenőrzéshez használja-e a Windows hitelesítési módot vagy az SQL Server-felhasználónevét vagy jelszavát (igen vagy nem). |
TrustServerCertificate |
Azt adja meg, hogy egy kiszolgálótanúsítvány érvényesítve van-e (igaz vagy hamis). |
UID |
Az SQL Server bejelentkezési neve. |
Use Encryption for Data |
Azt adja meg, hogy a rendszer titkosítsa-e az adatokat, mielőtt a hálózaton keresztül elküldené őket (igaz vagy hamis). |
UseProcForPrepare |
Elavult kulcsszó. |
WSID |
A munkaállomás azonosítója, annak a számítógépnek a hálózati neve, amelyen az alkalmazás található. |