
Er zijn van die momenten dat je van jezelf denkt “onder welke steen heb ik gelegen”… Zo’n moment had ik een paar weken geleden toen een collega me wees op de ware reden waarom Integration Services in SQL Server 2012 ineens ODBC source en destination componenten heeft gekregen. ODBC is de ‘nieuwe’ de-facto standaard om verbinding te maken met SQL Server. Nieuwe…? Ja, dat was ook mijn reactie. Want werd ODBC al niet geruime tijd gezien als ‘legacy’? Door mij, en ik denk met mij veel andere Microsoft SQL Server professionals, wel in ieder geval. OLE DB was immers de opvolger van ODBC. Maar volgens de SQLNCli team blog, is OLE DB einde oefening en zal de Microsoft SQL Server OLE DB driver voor toekomstige releases van SQL Server niet meer ondersteund worden. ODBC is het nieuwe OLE DB om de simpele reden dat ODBC het beste ondersteund wordt op alle platformen en alle client applicaties die er zijn terwijl OLE DB een Microsoft technologie is.
Overigens verdwijnt alleen de Microsoft SQL Server OLE DB provider. Andere Microsoft OLE DB providers en OLE DB providers van andere partijen, blijven wel bestaan. Ook in andere Microsoft producten die OLE DB gebruiken, waaronder SSIS en SSAS, blijft het gebruik van OLE DB in de toekomst mogelijk. Meer antwoorden op veel gestelde vragen over deze strategische wijziging van Microsoft vind je in de Microsoft is Aligning with ODBC for Native Relational Data Access – FAQ.
Je zou denken dat je met deze berichtgeving voortaan beter voor een ODBC connectie zou kunnen kiezen bij het maken van een verbinding met een SQL Server instantie. Helaas kan dat alleen met name in SSIS nog voor problemen zorgen… Zoals Jamie Thomson al ondervonden heeft. Zijn advies luidt dan ook weer te wachten met het gebruik van ODBC connecties in SSIS 2012. Kortom, voor nu nog even geen actie, maar we zijn alvast gewaarschuwd!
4 comments
SSIS Junkie heeft enkele bevindingen gepost op zijn blog over de SQL2012 ODBC connection manager, die het vermelden waard zijn:
http://sqlblog.com/blogs/jamie_thomson/archive/2012/03/08/odbc-in-ssis-2012.aspx.
Rob
Bedankt voor de aanvulling, Rob! Ik heb de slotzin van mijn post er op aangepast.
Hans Geurtsen
Hey Hans,
ik denk dat ik onder dezelfde steen gelegen heb – ook voor mij is dit nieuw.
Mag ik nu de voorzichtige conclusie trekken dat Microsoft ‘verliest’ in haar pogingen een nieuwe standaard neer te zetten? En dat ‘de industrie’ als geheel niet in staat is om een moderne standaard neer te zetten? En het terugvallen op het oude ODBC een zwaktebod is? of is dat te cynisch?
Overigens: Weet jij waarom alleen de SQL Server OLE DB provider verdwijnt en de rest blijft bestaan? Lijkt me een vreemde keus…
Grtz, Bart
Bart Linders
Bart, ik weet niet of ‘terugvallen’ op ODBC een zwaktebod is. Ik vind het eerlijk gezegd juist dapper van een bedrijf om toe te geven dat iets wat ze ooit bedacht hebben toch niet zo goed uitpakt als ze hadden verwacht. Het is, zoals je in de FAQ ook kunt lezen, ook onderdeel van Microsoft’s cloud strategie. Microsoft wil graag dat zoveel mogelijk applicaties gebruik kunnen en gaan maken van SQL Azure. En om zoveel mogelijk applicaties op wat voor platform dan ook verbinding te laten maken met SQL Azure, zal ODBC de meest gebruikte connectie worden omdat dat platform onafhankelijk is. Wat Microsoft nu doet is voor SQL Server alleen nog ODBC ondersteunen zodat je één verbindingssoort overhoudt wat het eenvoudiger maakt en waardoor Microsoft niet meerdere soorten verbindingen hoeft te onderhouden. Ik denk dat iedereen daar op termijn beter mee uit is. Dus ik snap je gevoel, dat was ook mijn gevoel in eerste instantie. Maar nee, volgens mij is dit zeker geen zwaktebod.
Wat je tweede vraag betreft, realiseer je goed dat ODBC alleen bedoeld is voor connecties met relationele databases. OLE DB is juist ooit bedacht voor verbindingen naar niet-relationele databases, bijv. Analysis Services. Daarvoor blijft OLE DB dus bestaan.
Hans Geurtsen