Dela via


Välja en datakälla eller drivrutin

Datakällan eller drivrutinen som används av ett program är ibland hårdkodad i programmet. Ett anpassat program som skrivits av en MIS-avdelning för att överföra data från en datakälla till en annan skulle till exempel innehålla namnen på dessa datakällor. Programmet fungerar helt enkelt inte med andra datakällor. Ett annat exempel är en vertikal applikation, till exempel en som används för orderinmatning. Ett sådant program använder alltid samma datakälla, som har ett fördefinierat schema som programmet känner till.

Andra program väljer datakällan eller drivrutinen vid körning. Det här är vanligtvis allmänna program som utför ad hoc-frågor, till exempel ett kalkylblad som använder ODBC för att importera data. Sådana program listar vanligtvis tillgängliga datakällor eller drivrutiner och låter användarna välja de som de vill arbeta med. Om ett allmänt program listar datakällor, drivrutiner eller båda beror ofta på om programmet använder DBMS-baserade eller filbaserade drivrutiner.

DBMS-baserade drivrutiner kräver vanligtvis en komplex uppsättning anslutningsinformation, till exempel nätverksadress, nätverksprotokoll, databasnamn och så vidare. Syftet med en datakälla är att dölja all den här informationen. Därför lämpar sig datakällans paradigm för användning med DBMS-baserade drivrutiner. Ett program kan visa en lista över datakällor för användaren på ett av två sätt. Den kan anropa SQLDriverConnect med nyckelordet DSN (datakällans namn) och inget associerat värde. Drivrutinshanteraren visar en lista med datakällans namn. Om programmet vill ha kontroll över utseendet på listan anropas SQLDataSources för att hämta en lista över tillgängliga datakällor och skapar en egen dialogruta. Den här funktionen implementeras av Driver Manager och kan anropas innan några drivrutiner läses in. Programmet anropar sedan en anslutningsfunktion och skickar namnet på den valda datakällan.

Om en datakälla inte har angetts används standarddatakällan som anges av systeminformationen. (Mer information finns i Standardundernyckel.) Om SQLConnect anropas med hjälp av ett ServerName-argument som inte kan hittas, är en null-pekare eller är "DEFAULT" ansluter Driver Manager till standarddatakällan. Standarddatakällan används också om anslutningssträngen som används i ett anrop till SQLDriverConnect eller SQLBrowseConnect innehåller DSN-nyckelordet inställt på "DEFAULT" eller om den angivna datakällan inte hittas. Dessutom används standarddatakällan om anslutningssträngen som används i ett anrop till SQLDriverConnect inte innehåller nyckelordet DSN .

Med filbaserade drivrutiner är det möjligt att använda ett filparadigm. För data som lagras på den lokala datorn vet användarna ofta att deras data finns i en viss fil, till exempel Employee.dbf. I stället för att välja en okänd datakälla är det enklare för sådana användare att välja den fil de känner till. För att implementera detta anropar programmet först SQLDrivers. Den här funktionen implementeras av Driver Manager och kan anropas innan några drivrutiner läses in. SQLDrivers returnerar en lista över tillgängliga drivrutiner. den returnerar också värden för nyckelorden FileUsage och FileExtns . Nyckelordet FileUsage förklarar om filbaserade drivrutiner behandlar filer som tabeller, liksom Xbase eller som databaser, liksom Microsoft Access. Nyckelordet FileExtns listar filnamnstilläggen som drivrutinen känner igen, till exempel .dbf för en Xbase-drivrutin. Med hjälp av den här informationen skapar programmet en dialogruta där användaren väljer en fil. Baserat på tillägget för den valda filen ansluter programmet sedan till drivrutinen genom att anropa SQLDriverConnect med nyckelordet DRIVER .

Det finns inget som hindrar ett program från att använda en datakälla med en filbaserad drivrutin eller anropa SQLDriverConnect med nyckelordet DRIVER för att ansluta till en DBMS-baserad drivrutin. Här följer flera vanliga användningsområden för nyckelordet DRIVER för DBMS-baserade drivrutiner:

  • Skapar inte datakällor. Ett anpassat program kan till exempel använda en viss drivrutin och databas. Om drivrutinsnamnet och all information som krävs för att ansluta till databasen är hårdkodad i programmet behöver användarna inte skapa en datakälla på sin dator för att köra programmet. Allt de behöver göra är att installera programmet och drivrutinen.

    En nackdel med den här metoden är att programmet måste kompileras om och omfördelas om anslutningsinformationen ändras. Om ett datakällans namn är hårdkodat i programmet i stället för fullständig anslutningsinformation, måste varje användare bara ändra informationen i datakällan.

  • Åtkomst till en viss DBMS en gång. Ett kalkylblad som till exempel hämtar data genom att anropa ODBC-funktioner kan innehålla nyckelordet DRIVER för att identifiera en viss drivrutin. Eftersom drivrutinsnamnet är meningsfullt för alla användare som har den drivrutinen kan kalkylbladet skickas mellan dessa användare. Om kalkylbladet innehåller ett datakällnamn måste varje användare skapa samma datakälla för att kunna använda kalkylbladet.

  • Bläddra i systemet för alla databaser som är tillgängliga för en viss drivrutin. Mer information finns i Ansluta med SQLBrowseConnect senare i det här avsnittet.