Введение в программирование на C# 2.0

       

Применение объекта соединения для исследования схемы базы


Установив соединение с базой данных, можно исследовать ее схему. Эта возможность обеспечивается объявленным в классе соединения методом GetOleDbSchemaTable.

Управление процессом сбора информации о схеме базы обеспечивается двумя параметрами метода.

Первый параметр представлен статическими свойствами класса OleDbSchemaGuid.

Второй параметр – массивом (кортежем) объектов, каждый из которых в зависимости от занимаемой позиции в кортеже может принимать определенное фиксированное значение либо иметь значение null:

Класс OleDbSchemaGuid. Определение схемы базы Namespace: System.Data.OleDb

При вызове метода GetOleDbSchemaTable значение – параметр типа OleDbSchemaGuid обеспечивает возвращение типа схемы таблицы.

Информация о структуре класса представлена ниже.

Следует иметь в виду, что не все провайдеры полностью поддерживают предоставляемые классом возможности по определению схемы таблицы.

Члены класса OleDbSchemaGuid:

Открытые конструкторы
OleDbSchemaGuid-конструктор Инициализирует новый экземпляр класса OleDbSchemaGuid

Открытые поля
AssertionsСтатический. Возвращает утверждения, определенные в каталоге, владельцем которого является указанный пользователь
CatalogsСтатический. Возвращает физические атрибуты, связанные с каталогами, доступными из источника данных. Возвращает утверждения, определенные в каталоге и принадлежащие указанному пользователю
Character_Sets Статический. Возвращает наборы символов, определенные в каталоге и доступные указанному пользователю
Check_Constraints Статический. Возвращает ограничения проверки, определенные в каталоге и принадлежащие указанному пользователю
Check_Constraints_By_Table Статический. Возвращает ограничения проверки, определенные в каталоге и принадлежащие указанному пользователю
Collations Статический. Возвращает сравнения знаков, определенные в каталоге и доступные указанному пользователю
Columns Статический. Возвращает столбцы таблиц (включая представления), определенные в каталоге и доступные указанному пользователю
Column_Domain_Usage Статический. Возвращает столбцы, определенные в каталоге и зависящие от домена, который определен в каталоге и принадлежит указанному пользователю
Column_Privileges Статический. Возвращает привилегии для столбцов таблиц, определенные в каталоге и доступные указанному пользователю или предоставленные им
Constraint_Column_Usage Статический. Возвращает столбцы, которые используются ссылочными ограничениями, уникальными ограничениями и утверждениями, определенными в каталоге и принадлежащими указанному пользователю
Constraint_Table_Usage Статический. Возвращает таблицы, которые используются ссылочными ограничениями, уникальными ограничениями и утверждениями, определенными в каталоге и принадлежащими указанному пользователю
DbInfoLiterals Статический. Возвращает список литералов, используемых в текстовых командах и специфичных для конкретного поставщика
Foreign_Keys Статический. Возвращает столбцы внешнего ключа, определенные в каталоге данным пользователем
Indexes Статический. Возвращает индексы, определенные в каталоге и принадлежащие указанному пользователю
Key_Column_Usage Статический. Возвращает столбцы, определенные в каталоге и ограниченные как ключи данным пользователем
Primary_Keys Статический. Возвращает столбцы первичного ключа, определенные в каталоге данным пользователем
Procedures Статический. Возвращает процедуры, определенные в каталоге и принадлежащие указанному пользователю
Procedure_Columns Статический. Возвращает сведения о столбцах наборов строк, возвращаемых процедурами
Procedure_Parameters Статический. Возвращает сведения о параметрах и кодах возврата процедур
Provider_Types Статический. Возвращает основные типы данных, поддерживаемые поставщиком данных .NET Framework для OLE DB
Referential_Constraints Статический. Возвращает ссылочные ограничения, определенные в каталоге и принадлежащие указанному пользователю
Schemata Статический. Возвращает объекты схемы, принадлежащие указанному пользователю
Sql_Languages Статический. Возвращает уровни соответствия, параметры и диалекты, поддерживаемые данными обработки с помощью реализации SQL
Statistics Статический. Возвращает статистические данные, определенные в каталоге и принадлежащие указанному пользователю
Tables Статический. Возвращает таблицы (включая представления), определенные в каталоге и доступные указанному пользователю
Tables_Info Статический. Возвращает таблицы (включая представления), доступные указанному пользователю
Table_Constraints Статический. Возвращает табличные ограничения, определенные в каталоге и принадлежащие указанному пользователю
Table_Privileges Статический. Возвращает привилегии для таблиц, определенные в каталоге и доступные указанному пользователю или предоставленные им
Table_Statistics Статический. Описывает доступный набор статистических данных по таблицам для поставщика
Translations Статический. Возвращает переводы знаков, определенные в каталоге и доступные указанному пользователю
Trustee Статический. Определяет доверенные объекты, заданные в источнике данных
Usage_Privileges Статический. Возвращает привилегии USAGE для объектов, определенные в каталоге и доступные указанному пользователю или предоставленные им
Views Статический. Возвращает представления, определенные в каталоге и доступные указанному пользователю
View_Column_Usage Статический. Возвращает столбцы, от которых зависят просматриваемые таблицы, определенные в каталоге и принадлежащие данному пользователю
View_Table_Usage Статический. Возвращает таблицы, от которых зависят просматриваемые таблицы, определенные в каталоге и принадлежащие данному пользователю


Открытые методы
Equals Перегружен. Определяет, равны ли два экземпляра Object
GetHashCode Служит хэш- функцией для конкретного типа, пригоден для использования в алгоритмах хэширования и структурах данных, например в хэш-таблице
GetType Возвращает Type текущего экземпляра
ToString Возвращает String, который представляет текущий Object
Защищенные методы
Finalize Переопределен. Позволяет объекту Object попытаться освободить ресурсы и выполнить другие завершающие операции, перед тем как объект Object будет уничтожен в процессе сборки мусора.
В языках C# и C++ для функций финализации используется синтаксис деструктора MemberwiseClone Создает неполную копию текущего Object Ниже представлен фрагмент кода, позволяющий прочитать информацию о схеме базы:

// Применение метода GetOleDbSchemaTable. // Получение информации о схеме базы данных. // При этом можно использовать параметр Restrictions, // с помощью которого можно фильтровать возвращаемые сведения // о схеме. private void schemaButton_Click(object sender, System.EventArgs e) { // Точной информацией о том, что собой представляют остальные // члены множества Restrictions, пока не располагаю. object[] r; r = new object[] {null, null, null, "TABLE"}; oleDbConnection.Open(); DataTable tbl; tbl=oleDbConnection.GetOleDbSchemaTable (System.Data.OleDb.OleDbSchemaGuid.Tables, r); rpDataGrid.DataSource = tbl; oleDbConnection1.Close(); }

Таким образом получается информация о схеме базы, связь с которой устанавливается через объект соединения.

Но основная область применения объекта соединения – в составе команды.


Содержание раздела