ODBC срещу ADO
Обикновено софтуерните приложения са написани на специфичен език за програмиране (като Java, C и т.н.), докато базите данни приемат заявки на друг специфичен за базата данни език (като SQL). Следователно, когато софтуерно приложение има нужда от достъп до данни в база данни, е необходим интерфейс, който може да превежда езици един към друг (приложение и база данни). В противен случай приложните програмисти трябва да научат и да включат специфични за базата данни езици в своите приложения. ODBC (Open Database Connectivity) и OLE DB (Object Linking and Embedding, Database) са два интерфейса, които решават този специфичен проблем. ODBC е независим от платформа, език и операционна система интерфейс, който може да се използва за тази цел. OLE DB е наследник на ODBC. ADO е обвивка за OLE DB.
Какво е ODBC?
ODBC е интерфейс за достъп до системи за управление на бази данни (СУБД). ODBC е разработен от SQL Access Group през 1992 г. във време, когато не е имало стандартна среда за комуникация между база данни и приложение. Не зависи от конкретен език за програмиране или система от бази данни или операционна система. Програмистите могат да използват ODBC интерфейс, за да пишат приложения, които могат да заявяват данни от всяка база данни, независимо от средата, в която работи, или вида на СУБД, който използва.
Тъй като ODBC драйверът действа като преводач между приложението и базата данни, ODBC може да постигне независимост от езика и платформата. Това означава, че приложението е освободено от тежестта на познаването на специфичния език на базата данни. Вместо това той ще знае и използва само синтаксиса на ODBS и драйверът ще преведе заявката към базата данни на език, който разбира. След това резултатите се връщат във формат, който може да бъде разбран от приложението. ODBC софтуерният API може да се използва както с релационни, така и с нерелационни системи за бази данни. Друго основно предимство на наличието на ODBC като универсален междинен софтуер между приложение и база данни е, че всеки път, когато спецификацията на базата данни се промени, софтуерът не трябва да се актуализира. Само актуализация на ODBC драйвера би била достатъчна.
Какво е ADO?
ADO е колекция от COM (Component Object Mode) обекти, които действат като интерфейс за достъп до данни в източници на данни. ADO е разработен през 1996 г. от Microsoft като част от Microsoft Data Access Components (MDAC). ADO формира междинен слой между приложения, написани на някакъв език за програмиране, и OLE DB (API за данни, разработен от Microsoft и наследник на ODBC). Програмистите могат да използват ADO за достъп до данни, без да знаят основните подробности за изпълнението на базата данни. Въпреки че не се изисква да знаете SQL, за да използвате ADO, със сигурност можете да изпълнявате SQL изрази, използвайки го.
Каква е разликата между ODBC и ADO?
ODBC е отворен интерфейс, който може да се използва от всяко приложение за комуникация с всяка система от бази данни, докато ADO е обвивка около OLE DB (която е наследник на ODBC). Ако базата данни не поддържа OLE (не-OLE среди), тогава ODBC е най-добрият избор. Ако средата не е SQL, тогава трябва да използвате ADO (тъй като ODBC работи само със SQL). Ако се изискват оперативно съвместими компоненти на база данни, тогава трябва да се използва ADO вместо ODBC. За 16-битови данни обаче достъпът до ODBC е единствената опция (ADO не поддържа 16-бита). И накрая, ADO е най-добрият избор за свързване към множество бази данни наведнъж (ODBC може да се свързва само с една база данни наведнъж).