Книга в this StackOverflow вопрос гласит:OLE DB и язык программирования зависимость (по сравнению с ADO)
Имейте в виду, что OLE DB был разработан для поставщиков программного обеспечения, которые разрабатывают данных приложений на основе подвергать эти данные в вы, разработчик конечного пользователя , через согласованный интерфейс. OLE DB быстрый, эффективный, и мощный. Он имеет все, что разработчик ищет в технологии доступа к данным . Он предлагает доступ к любому источнику данных, известному человеку (или к Windows, если на то пошло), и он обеспечивает доступ к этим данным источников с согласованным интерфейсом, независимо от источника данных. Проблема с OLE DB заключается в том, что, как и ODBC, она недоступна для Visual Основные и другие разработчики, поскольку она основана на API-интерфейсе C. Разработчикам Visual Basic, в частности, необходимо больше.
1.1.3
ADO Введите объекты данных ActiveX (ADO). ADO, интерфейс прикладного уровня для OLE DB, является последней, самой большой частью стратегии Microsoft UDA . Он сочетает в себе лучшие возможности своих предшественников, DAO и RDO, и добавляет доступность OLE DB для программистов VBA. ADO предоставляет согласованное, средство, независимое от языка, для доступа к данным практически из любого источника , включая текстовые или другие устаревшие данные в реляционных и нереляционных форматах. (Теперь вы можете понять, почему я должен объяснить некоторые алфавита суп, прежде чем попасть в ADO себя.)
Но, глядя на OLE DB reference, OLE DB ссылка состоит из COM-интерфейсов.
Если OLE DB ссылка состоит из COM-интерфейсов, не означает ли это, что OLE DB является языком независимого, потому что вся цель использования COM, чтобы сделать вещи языконезависимыми?
Почему бы назвать OLE DB API-интерфейсом C, если этот API состоит из COM-интерфейсов - эти интерфейсы имеют методы, и, следовательно, эти интерфейсы уже являются похожими на объекты в объектно-ориентированном программировании? (vs C-style API, который я бы связал больше с набором функций)
Если OLE DB зависит от языка, то какие языки могут использовать API OLE DB? (это C или C++ или оба или, возможно, другие)
Если можно создать экземпляр интерфейса OLE DB с помощью функции
CoCreateInstance()
, не может ли использоваться та же самая функция (или ее отделение в VB) в Visual Basic для создания экземпляра этого интерфейса в VB?