Получение информации схемы баз данных в SQL и OLEDB объединяют в себе некоторые общие подходы. Каждый из них использует низкоуровневые команды, что в некоторой степени, вынуждает пользователей и администраторов к «мышлению низкого уровня восприятия ».
И на самом деле, можно получать некоторую часть информации напрямую из схем баз данных, но это еще совершенно не значит того, что следует работать именно так. OLEDB дает возможность обеспечивать первый уровень абстракцирования, а также может позволить вызвать только лишь всего один метод, причем независимо от уровня сложности физического воплощения источников данных.
Вся проблема с OLEDB заключается в том, что обращения к информации схемы осуществляются в одном режиме read-only, и становится невозможным изменять состояние базы данных. Это, конечно же, лучше, чем совсемничего, но все же не совсем полностью может оправдать все ожидания. В данной ситуации имеет смысл воспользоваться ADOX, если требуется использовать объектные модели для операторов DDL. ADOX – это расширение к объектам ADO, включающее в себя как отдельные объекты для создания и модифицирования схем, но и также для возможной защиты данных. ADOX может позволить писать непосредственно объектно-ориентированный код, который способен работать с другими источниками данных, причем совершенно независимо от их возможных различий в синтаксисе. И при этом всем, создание таблиц и столбцов так же просто, как и создание экземпляра уже существующего объекта{mnf=off}.
Помимо этого, ADOX может позволить встраивать, а после этого выполнять абсолютно любую бизнес-логику при инициализации или модификации самой структуры уровня данных. Жаль, но ADOX имеет ряд ограничений, которые могут проявиться при его обращениях из ODBC и OLEDB провайдеров, которые отличаются от JetOLEDBProvider. Причиной всему является то, что сам ADOX проектировался, в первую очередь, для работы с базами данных Access. Но все же, хотя у него и присутствуют некоторые ограничения (а конкретно, нотации директорий в Jet и SQLServer отличаются), однако можно считывать и записывать информацию о схеме для таблиц SQLServer. ADOX использовать очень сложно в Net-приложении, чем ADO. Библиотеку ADOX можно импортировать в проект, а далее уже используются все нужные объекты. Однако существует лишь одно предостережение: ни в коем случае нельзя применять объекты ADO.Netconnection.
Директория ADOX распознает лишь объекты ADOconnection. А при попытке связи библиотеки ADOX с таким объектом как OleDbConnection всегда будет возникать исключение, потому, что запрос от ADOX будет обращаться к несуществующему интерфейсу. Тогда здесь нужно будет использовать импорт ADO с тем, чтобы была возможность использовать ADOX.




