Dela via


Vad är ODBC?

Det finns många missuppfattningar om ODBC i databehandlingsvärlden. För slutanvändaren är det en ikon på Kontrollpanelen i Microsoft Windows. För programprogram programmeraren är det ett bibliotek som innehåller dataåtkomstrutiner. För många andra är det svaret på alla problem med databasåtkomst som någonsin föreställts.

Först och främst är ODBC en specifikation för ett databas-API. Det här API:et är oberoende av ett DBMS- eller operativsystem. Även om den här handboken använder C är ODBC-API:et språkoberoende. ODBC-API:et baseras på CLI-specifikationerna från Open Group och ISO/IEC. ODBC 3. x implementerar båda dessa specifikationer fullt ut – tidigare versioner av ODBC baserades på preliminära versioner av dessa specifikationer men implementerade dem inte fullt ut – och lägger till funktioner som ofta behövs av utvecklare av skärmbaserade databasprogram, till exempel rullningsbara markörer.

Funktionerna i ODBC-API:et implementeras av utvecklare av DBMS-specifika drivrutiner. Program anropar funktionerna i dessa drivrutiner för att få åtkomst till data på ett DBMS-oberoende sätt. En Driver Manager hanterar kommunikationen mellan program och drivrutiner.

Även om Microsoft tillhandahåller en drivrutinshanterare för datorer som kör Microsoft Windows 95 och senare, har skrivit flera ODBC-drivrutiner och anropar ODBC-funktioner från vissa av dess program, kan vem som helst skriva ODBC-program och drivrutiner. Faktum är att de allra flesta ODBC-program och drivrutiner som är tillgängliga idag skrivs av andra företag än Microsoft. Dessutom finns ODBC-drivrutiner och program på macOS och en mängd olika UNIX-plattformar.

För att hjälpa program- och drivrutinsutvecklare erbjuder Microsoft ett ODBC Software Development Kit (SDK) för datorer som kör Windows 95 och senare som tillhandahåller drivrutinshanteraren, installationsprogrammets DLL, testverktyg och exempelprogram. Microsoft har samarbetat med Visigenic Software för att portera dessa SDK:er till Macintosh och en mängd olika UNIX-plattformar.

Det är viktigt att förstå att ODBC är utformat för att exponera databasfunktioner, inte komplettera dem. Därför bör programutvecklare inte förvänta sig att användning av ODBC plötsligt omvandlar en enkel databas till en fullfjädrad relationsdatabasmotor. Drivrutinsförfattare förväntas inte heller implementera funktioner som inte hittas i den underliggande databasen. Ett undantag till detta är att utvecklare som skriver drivrutiner som har direkt åtkomst till fildata (till exempel data i en Xbase-fil) måste skriva en databasmotor som stöder minst minimala SQL-funktioner. Ett annat undantag är att ODBC-komponenten i Windows SDK, som tidigare ingick i Microsoft Data Access Components (MDAC) SDK, tillhandahåller ett markörbibliotek som simulerar rullningsbara markörer för drivrutiner som implementerar en viss funktionsnivå.

Program som använder ODBC ansvarar för alla funktioner mellan databaser. ODBC är till exempel inte en heterogen kopplingsmotor, och det är inte heller en distribuerad transaktionsprocessor. Men eftersom det är DBMS-oberoende kan det användas för att skapa sådana verktyg mellan databaser.