Megosztás:


Illesztőprogram-kezelő

Az Illesztőprogram-kezelő egy olyan kódtár, amely kezeli az alkalmazások és illesztőprogramok közötti kommunikációt. A Microsoft Windows-platformokon például az Illesztőprogram-kezelő egy dinamikus csatolású kódtár (DLL), amelyet a Microsoft ír, és amelyet az terjeszthető MDAC 2.8 SP1 SDK felhasználói terjeszthetnek újra.

Az Illesztőprogram-kezelő elsősorban az alkalmazásírók kényelmét szolgálja, és számos, az összes alkalmazásra jellemző problémát old meg. Ezek közé tartozik az adatforrás nevének alapján annak meghatározása, hogy melyik illesztőprogramot töltsük be, az illesztőprogramok betöltése és eltávolítása, valamint a függvények meghívása az illesztőprogramokon belül.

Annak érdekében, hogy az utóbbi miért probléma, gondolja át, mi történne, ha az alkalmazás függvényeket hívna közvetlenül az illesztőprogramban. Ha az alkalmazást nem csatolták közvetlenül egy adott illesztőprogramhoz, akkor egy mutatótáblát kell létrehoznia az illesztőprogramban lévő függvényekhez, és mutatóval kell meghívnia ezeket a függvényeket. Ha ugyanazt a kódot egyszerre több illesztőhöz használja, az további összetettségi szintet adna. Az alkalmazásnak először egy függvénymutatót kell beállítania, hogy a megfelelő illesztőprogramban a megfelelő függvényre mutasson, majd hívja meg a függvényt ezen a mutatón keresztül.

Az Illesztőprogram-kezelő úgy oldja meg ezt a problémát, hogy egyetlen helyet biztosít az egyes függvények meghívásához. Az alkalmazás az Illesztőprogram-kezelőhöz van kapcsolva, és az ODBC-függvényeket az Illesztőprogram-kezelőn keresztül hívja meg, nem közvetlenül az illesztőprogramban. Az alkalmazás egy kapcsolati leíróval azonosítja a célillesztőt és az adatforrást. Amikor betölt egy illesztőprogramot, az Illesztőprogram-kezelő létrehoz egy mutatótáblát az illesztőprogram funkcióihoz. Az alkalmazás által átadott kapcsolati leíróval megkeresi a függvény címét a célillesztőben, és cím szerint hívja meg a függvényt.

Az Illesztőprogram-kezelő többnyire csak átadja a függvényhívásokat az alkalmazásból a megfelelő illesztőprogramnak. Bizonyos függvényeket (SQLDataSources, SQLDrivers és SQLGetFunctions) is implementál, és alapvető hibaellenőrzést végez. Az Illesztőprogram-kezelő például ellenőrzi, hogy a leírók nem nullmutatók-e, hogy a függvények a megfelelő sorrendben vannak-e meghívva, és hogy bizonyos függvényargumentumok érvényesek-e. A meghajtókezelő által ellenőrzött hibák teljes leírásáért tekintse meg az egyes függvények referenciaszakaszát és a B függelék - ODBC állapotátmeneti táblázatokat.

A Driver Manager végső fő szerepe az illesztőprogramok be- és kirakodása. Az alkalmazás csak az Illesztőprogram-kezelőt tölti be és rakja ki. Ha egy adott illesztőprogramot szeretne használni, meghív egy kapcsolati függvényt (SQLConnect, SQLDriverConnect vagy SQLBrowseConnect) az Illesztőprogram-kezelőben, és megadja egy adott adatforrás vagy illesztőprogram nevét, például "Könyvelés" vagy "SQL Server". Ezzel a névvel az Illesztőprogram-kezelő megkeresi az adatforrás adatait az illesztőprogram fájlnevéhez, például Sqlsrvr.dll. Ezután betölti az illesztőprogramot (feltéve, hogy még nincs betöltve), tárolja az egyes függvények címét az illesztőprogramban, és meghívja a kapcsolati függvényt az illesztőprogramban, amely inicializálja magát, és csatlakozik az adatforráshoz.

Amikor az alkalmazás elkészült az illesztőprogram használatával, meghívja az SQLDisconnectet az Illesztőprogram-kezelőben. Az Illesztőprogram-kezelő meghívja ezt a függvényt az illesztőprogramban, amely leválasztja az adatforrást. Az Illesztőprogram-kezelő azonban memóriában tartja az illesztőprogramot, ha az alkalmazás újra csatlakozik hozzá. Csak akkor távolítja el az illesztőprogramot, ha az alkalmazás felszabadítja az illesztőprogram által használt kapcsolatot, vagy egy másik illesztőprogramhoz használja a kapcsolatot, és más kapcsolatok nem használják az illesztőprogramot. Az illesztőprogram-kezelő illesztőprogramok betöltésében és kiürítésében betöltött szerepének teljes leírását az Illesztőprogram-kezelő szerepköre a kapcsolati folyamatban című témakörben talál.