Метод OpenSchema
Получает сведения о схеме базы данных от поставщика.
Синтаксис
Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)
Возвращаемое значение
Возвращает объект Recordset , содержащий сведения о схеме. Набор записей будет открыт как статический курсор только для чтения. QueryType определяет, какие столбцы отображаются в наборе записей.
Параметры
QueryType
Любое значение SchemaEnum , представляющее тип выполняемого запроса схемы.
Критерии
Необязательный элемент. Массив ограничений запросов для каждого параметра QueryType , как указано в schemaEnum.
SchemaID
GUID для запроса схемы поставщика, не определенного спецификацией OLE DB. Этот параметр является обязательным, если параметр QueryType имеет значение adSchemaProviderSpecific; в противном случае он не используется.
Комментарии
Метод OpenSchema возвращает самоописательные сведения об источнике данных, такие как таблицы в источнике данных, столбцы в таблицах и поддерживаемые типы данных.
Аргумент QueryType — это GUID, указывающий возвращаемые столбцы (схемы). Спецификация OLE DB содержит полный список схем.
Аргумент Criteria ограничивает результаты запроса схемы. Условие указывает массив значений, который должен находиться в соответствующем подмножестве столбцов, называемых столбцами ограничений, в результирующем наборе записей.
Константная adSchemaProviderSpecific используется для аргумента QueryType, если поставщик определяет собственные нестандартные запросы схемы за пределами перечисленных ранее. При использовании этой константы аргумент SchemaID требуется для передачи GUID запроса схемы для выполнения. Если для параметра QueryType задано значение adSchemaProviderSpecific , но schemaID не указан, произойдет ошибка.
Поставщики не обязаны поддерживать все стандартные запросы схемы OLE DB. В частности, спецификация OLE DB требует только adSchemaTables, adSchemaColumns и adSchemaProviderTypes . Однако поставщик не обязан поддерживать ограничения критериев , перечисленные ранее для этих запросов схемы.
Примечание
Использование службы удаленных данных Метод OpenSchema недоступен в объекте Connection на стороне клиента.
Примечание
В Visual Basic столбцы, имеющие четырехбайтовое целое число без знака (DBTYPE UI4) в наборе записей, возвращенном методом OpenSchema в объекте Connection , не могут сравниваться с другими переменными. Дополнительные сведения о типах данных OLE DB см. в разделах Типы данных в OLE DB (OLE DB) и Приложение А. Типы данных в справочнике программистов Microsoft OLE DB.
Примечание
Пользователи Visual C/C++ Если курсоры не используются на стороне клиента, получение "ORDINAL_POSITION" схемы столбца в ADO возвращает вариант типа VT_R8 в MDAC 2.7, MDAC 2.8 и компонентах доступа к данным Windows (DAC Windows) 6.0, в то время как тип, используемый в MDAC 2.6, был VT_I4. Программы, написанные для MDAC 2.6, которые ищут только вариант, возвращаемый типом VT_I4, будут получать ноль для каждого порядкового номера при выполнении в MDAC 2.7, MDAC 2.8 и Windows DAC 6.0 без изменений. Это изменение было внесено, так как тип данных, возвращаемых OLE DB, является DBTYPE_UI4, а в типе со знаком VT_I4 недостаточно места для хранения всех возможных значений без возможного усечения и, следовательно, потери данных.
Применение
См. также:
Пример метода OpenSchema (Visual Basic)
Пример метода OpenSchema (Visual C++)
Метод Open (объект Connection ADO)
Метод Open (объект Record ADO)
Метод Open (объект Recordset ADO)
Метод Open (объект Stream ADO)
Приложение А. Поставщики