ODBC vs OLEDB
Typiskt skrivs programvara på ett specifikt programmeringsspråk (som Java, C #, etc.), medan databaser accepterar frågor i något annat databasspecifikt språk (till exempel SQL). När en programvara behöver tillgång till data i en databas krävs därför ett gränssnitt som kan översätta språk till varandra (applikation och databas). Annars måste programprogrammerare lära sig och införliva databasspecifika språk inom sina applikationer. ODBC (Open Database Connectivity) och OLEDB (Object Linking and Embedding, Database) är två gränssnitt som löser detta specifika problem. ODBC är ett plattform, språk och operativsystem oberoende gränssnitt som kan användas för detta ändamål. OLEDB är efterträdare till ODBC.
Vad är ODBC?
ODBC är ett gränssnitt för åtkomst till databashanteringssystem (DBMS). ODBC utvecklades av SQL Access Group 1992 vid en tidpunkt det fanns inget standardmedium att kommunicera mellan en databas och en applikation. Det beror inte på ett specifikt programmeringsspråk eller ett databassystem eller ett operativsystem. Programmerare kan använda ODBC-gränssnittet för att skriva program som kan söka data från en databas, oavsett vilken miljö den körs på eller vilken typ av DBMS det använder.
Eftersom ODBC-drivrutinen fungerar som översättare mellan applikationen och databasen, kan ODBC uppnå språk och plattformsoberoende. Detta innebär att applikationen är befriad från bördan att känna till databassspecifikt språk. Istället kommer den bara att känna till och använda ODBS-syntaxen och föraren kommer att översätta frågan till databasen på ett språk som det kan förstå. Därefter returneras resultaten i ett format som kan förstås av ansökan. ODBC-programvaru API kan användas med både relationella och icke-relationella databasystem. En annan stor fördel med att ha ODBC som en universell middleware mellan en applikation och en databas är att varje gång databasspecifikationen ändras behöver mjukvaran inte uppdateras. Endast en uppdatering till ODBC-drivrutinen skulle vara tillräcklig.
Vad är OLEDB?
OLEDB är ett data API utvecklat av Microsoft. Det gör att du kan komma åt data från ett stort antal datakällor. Det implementeras med hjälp av Microsofts COM (Component Object Mode). OLEDB anses vara en efterträdare till ODBC, och den kan hantera datakällor på en mycket högre nivå jämfört med ODBC. I huvudsak utökar OLEDB ODBC-funktionerna till icke-relationella databaser (t ex objektdatabaser och kalkylblad). Det betyder att OLEDB kan användas med databaser som inte använder SQL. OLEDB utvecklades som en del av Microsoft Data Access Components (MDAC).
Vad är skillnaden mellan ODBC och OLEDB?
Om programmeraren inte är bekant med COM, är ODBC det bättre alternativet. Men ODBC är bara bra för relationsdatabaser, medan OLEDB är lämplig för både relationella och icke-relationella databaser. Om databasen inte stöder OLE (icke-OLE-miljöer) är ODBC det bästa valet. Om miljön inte är SQL, måste du använda OLEDB (eftersom ODBC endast fungerar med SQL). På liknande sätt, om interoperabla databaskomponenter krävs, måste OLEDB användas istället för ODBC. För 16-bitars dataåtkomst är ODBC det enda alternativet (OLEDB stöder inte 16-bitars). Slutligen är OLEDB det bästa valet för att ansluta till flera databaser samtidigt (ODBC kan ansluta till endast en databas åt gången).