Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az interoperabilitás alapszintű ismerete után figyelembe kell venni az alkalmazás által használt adatbázis-funkciókat. Például milyen SQL-utasításokat hajt végre az alkalmazás? Az alkalmazás görgethető kurzorokat fog használni? Tranzakciók? Eljárások? Hosszú adatok? Az SQLGetInfo, az SQLSetConnectAttr és az SQLSetStmtAttr függvény leírásában és a C függelékben talál ötleteket arról, hogy milyen funkciókat nem támogat az összes DBMS. Az alkalmazás által igényelt funkciók egyes DBMS-eket eltávolíthatnak a céladatbázis-kezelők listájából. Azt is megmutathatják, hogy az alkalmazás könnyen megcélozhat számos DBMS-et.
Ha például a szükséges funkciók egyszerűek, általában nagy fokú interoperabilitással valósíthatók meg. Az egyszerű SELECT utasítást végrehajtó és az eredményeket csak előre mutató kurzorral lekérő alkalmazás valószínűleg az egyszerűsége miatt rendkívül interoperábilis: Szinte minden illesztőprogram és DBMS támogatja a szükséges funkciókat.
Ha azonban a szükséges funkciók összetettebbek, például görgethető kurzorok, elhelyezett frissítési és törlési utasítások és eljárások, akkor gyakran kompromisszumokat kell hozni. Számos lehetőség van:
Alacsonyabb együttműködési képesség, további funkciók. Az alkalmazás tartalmazza a funkciókat, de csak az őket támogató DBMS-ekkel működik.
Nagyobb interoperabilitás, kevesebb funkció. Az alkalmazás elveti a funkciókat, de több DBMS-sel működik.
Nagyobb interoperabilitás, választható funkciók. Az alkalmazás tartalmazza a funkciókat, de csak azokat a DBMS-eket teszi elérhetővé, amelyek támogatják őket.
Nagyobb interoperabilitás, további funkciók. Az alkalmazás olyan dbMS-ekkel rendelkező funkciókat használ, amelyek támogatják őket, és emulálja azokat olyan DBMS-ekhez, amelyek nem.
Az első két eset viszonylag egyszerűen implementálható, mert a funkciók vagy az összes támogatott ADATBÁZIS-kezelővel, vagy egyikkel sem használhatók. Az utóbbi két eset viszont összetettebb. Mindkét esetben ellenőrizni kell, hogy a DBMS támogatja-e a funkciókat, és az utolsó esetben valószínűleg nagy mennyiségű kódot kell írni a funkciók emulálásához. Ezért ezek a sémák valószínűleg több fejlesztési időt igényelnek, és futásidőben lassabbak lehetnek.
Fontolja meg egy általános lekérdezési alkalmazást, amely egyetlen adatforráshoz tud csatlakozni. Az alkalmazás elfogad egy lekérdezést a felhasználótól, és megjeleníti az eredményeket egy ablakban. Tegyük fel, hogy az alkalmazás rendelkezik egy olyan funkcióval, amellyel a felhasználók egyszerre több lekérdezés eredményét is megjeleníthetik. Vagyis végrehajthatnak egy lekérdezést, megnézhetik az eredmények egy részét, végrehajthatnak egy másik lekérdezést, megnézhetik annak egyes eredményeit, majd visszatérhetnek az első lekérdezéshez. Ez együttműködési problémát jelent, mert egyes illesztőprogramok csak egyetlen aktív utasítást támogatnak.
Az alkalmazás számos választási lehetőséget kínál, az alapján, amit az illesztőprogram az SQLGetInfo SQL_MAX_CONCURRENT_ACTIVITIES beállításához visszaküld.
Mindig több lekérdezést támogat. Az illesztőprogramhoz való csatlakozás után az alkalmazás ellenőrzi az aktív utasítások számát. Ha az illesztőprogram csak egy aktív utasítást támogat, az alkalmazás bezárja a kapcsolatot, és tájékoztatja a felhasználót, hogy az illesztőprogram nem támogatja a szükséges funkciókat. Az alkalmazás könnyen implementálható és teljes funkcionalitással rendelkezik, de alacsonyabb az interoperabilitása.
Soha ne támogatjon több lekérdezést. Az alkalmazás teljesen elveti a funkciót. Könnyen implementálható, és magas interoperabilitással rendelkezik, de kevesebb funkcióval rendelkezik.
Több lekérdezést csak akkor támogat, ha az illesztőprogram igen. Az illesztőprogramhoz való csatlakozás után az alkalmazás ellenőrzi az aktív utasítások számát. Az alkalmazás lehetővé teszi, hogy a felhasználó új utasítást indítson, ha az egyik már aktív, csak akkor, ha az illesztőprogram több aktív utasítást is támogat. Az alkalmazás nagyobb funkcionalitással és interoperabilitással rendelkezik, de nehezebb implementálni.
Mindig több lekérdezést támogat, és szükség esetén emulálja őket. Az illesztőprogramhoz való csatlakozás után az alkalmazás ellenőrzi az aktív utasítások számát. Az alkalmazás mindig lehetővé teszi a felhasználó számára, hogy új kijelentést indítson, amikor már aktív egy másik. Ha az illesztőprogram csak egy aktív utasítást támogat, az alkalmazás további kapcsolatot nyit meg az adott illesztőprogramtal, és végrehajtja az új utasítást ezen a kapcsolaton. Az alkalmazás teljes funkcionalitással és magas interoperabilitással rendelkezik, de nehezebb implementálni.