OLE DB ( English Object Linking and Embedding, Database , ibland skrivet OLEDB , OLE-DB ) är en uppsättning COM -gränssnitt som tillåter applikationer att arbeta enhetligt med data från olika källor och informationslager. Utvecklad av Microsoft som en vidareutveckling av dataåtkomstteknologi och skulle komma som en ersättare och efterföljare till ODBC , vilket utökade funktionsuppsättningen för att stödja ett bredare utbud av icke-relationella datakällor såsom objektorienterade databaser eller kalkylblad, och för vilka det inte är nödvändigt att använda SQL .
OLE DB separerar datalagret från applikationen, som måste ha åtkomst till det genom en uppsättning abstraktioner, bestående av en datakälla (DataSource), en session (Session), ett kommando (Command) och en uppsättning rader (Rowset). ). Detta gjordes för att ge enhetlig åtkomst till olika typer och källor av data och för att isolera detaljerna för interaktion med ett visst arkiv. OLE DB är konceptuellt uppdelat i konsumenter (klienter) och leverantörer (leverantörer). Konsumenten är applikationen som behöver komma åt data, och leverantören implementerar dataåtkomstgränssnittet och tillhandahåller därför information till konsumenten.
OLE DB-specifikationen är en del av Microsoft Data Access Components (MDAC), som är en grupp Microsoft-teknologier som utgör grunden för ett enda och universellt sätt att utveckla applikationer för att komma åt data från praktiskt taget alla datalager. MDAC inkluderar till exempel OLE DB-tjänster (anslutningspool etc.) och ADODB-komponenter.
OLE DB-leverantörer kan ge tillgång till både enkla datalager, i form av textfiler och kalkylblad, såväl som "riktiga" databaser som drivs av Oracle Database , Microsoft SQL Server , Sybase ASE , Firebird och Interbase . Det är också möjligt att komma åt hierarkiska datalager såsom e-postsystem.
Eftersom olika datalager kan ha olika möjligheter, stöder OLE DB-leverantörer vanligtvis inte alla gränssnitt som beskrivs i OLE DB-specifikationen. De tillgängliga funktionerna hos en dataleverantör bestäms genom att begära pekare till COM-gränssnitten för dess objekt, eller genom att läsa informationsegenskaperna för DataSource. Observera att en dataleverantör kan implementera och tillhandahålla sina egna COM-gränssnitt och datastrukturer som inte beskrivs i OLE DB-specifikationen.
Det finns en stark uppfattning att OLE DB fokuserar mer på MS SQL, men så är det inte. Datatyper "matriser" och flera parallella transaktioner inom en anslutning, som stöds av OLE DB-specifikationen, stöds inte i MS SQL, men finns i andra databasservrar (Firebird, Interbase). Om det finns någon "orientering" gäller det bara för operativsystemet. Eftersom OLE DB är baserat på COM-teknik och fullt COM-stöd endast är tillgängligt på Windows, finns OLE-DB-leverantörer endast för operativsystem i Windows-familjen.
Under lång tid rekommenderade Microsoft att använda OLE DB istället för ODBC , men i och med tillkännagivandet av Microsoft SQL Server 2014 tillkännagavs det [1] att inbyggt OLE DB-stöd för denna produkt upphör och endast ODBC-stöd finns kvar. Detta hänvisade troligen till den "rena" OLE-DB-leverantören för MSSQL (SQLOLEDB), och inte "Native SQL Client" (SQLNCLI), som kombinerade OLE DB-leverantörer och ODBC-drivrutiner. Men från utsidan såg det ut som ett fullständigt förkastande av OLE DB som teknik. I oktober 2017 förklarades detta beslut fel och lanseringen av en uppdaterad OLE DB-leverantör för MSSQL [2] tillkännagavs .