Применение объекта соединения для исследования схемы базы
Установив соединение с базой данных, можно исследовать ее схему. Эта возможность обеспечивается объявленным в классе соединения методом 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 будет уничтожен в процессе сборки мусора. |
// Применение метода 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(); }
Таким образом получается информация о схеме базы, связь с которой устанавливается через объект соединения.
Но основная область применения объекта соединения – в составе команды.