GetSchema(String)
Метод предоставляет метаданные указанных объектов БД (коллекции данных), связанных с текущим соединением.
Синтаксис
public override DataTable GetSchema(string collectionName);
collectionName – имя коллекции данных (строковое значение из столбца 1 в таблице 9).
Возвращаемое значение
Объект DataTable типа System.Data.DataTable (структуру записей см. в таблице 8).
Исключения
ArgumentException | Коллекция данных не поддерживается. | |
InvalidOperationException | Соединение не открыто. | |
LinterSqlException | Код завершения СУБД ЛИНТЕР не равен 0. |
Пример
// C#
using System;
using System.Data;
using System.Data.Common;
class GetSchemaSample
{
static void Main()
{
DbProviderFactory factory =
DbProviderFactories.GetFactory("System.Data.LinterClient");
DbConnection con = factory.CreateConnection();
con.ConnectionString = "User ID=SYSTEM;Password=MANAGER8;DataSource=LOCAL";
try
{
// Соединение с БД
con.Open();
// Получение сведений о схеме базы данных
DataTable schema = con.GetSchema("Restrictions");
// Вывод полученных сведений на экран
OutputDataTable(schema);
}
catch (Exception ex)
{
Console.WriteLine("Ошибка: " + ex.Message);
}
finally
{
// Освобождение ресурсов
con.Close();
}
}
private static void OutputDataTable(DataTable dataTable)
{
Console.WriteLine(new String('-', 60));
foreach (DataColumn column in dataTable.Columns)
{
Console.Write(column.ColumnName + " | ");
}
Console.WriteLine();
Console.WriteLine(new String('-', 60));
foreach (DataRow row in dataTable.Rows)
{
for (int i = 0; i < dataTable.Columns.Count; i++)
{
if (row.IsNull(i))
{
Console.Write("<NULL> | ");
}
else
{
Console.Write(row[i] + " | ");
}
}
Console.WriteLine();
}
}
}
Результат выполнения примера:
---------------------------------------------------------------------------
CollectionName |RestrictionName |RestrictionDefault|RestrictionNumber|
---------------------------------------------------------------------------
CharacterSets |Id | |0 |
CharacterSets |Name | |1 |
Columns |Catalog | |0 |
Columns |Schema | |1 |
Columns |Table | |2 |
Columns |Column | |3 |
Connections |UserName | |0 |
Devices |Device | |0 |
ForeignKeyColumns |Catalog | |0 |
ForeignKeyColumns |Schema | |1 |
ForeignKeyColumns |Table | |2 |
ForeignKeyColumns |ForeignKey | |3 |
ForeignKeyColumns |ForeignKeyColumn | |4 |
ForeignKeys |Catalog | |0 |
ForeignKeys |Schema | |1 |
ForeignKeys |Table | |2 |
ForeignKeys |ForeignKey | |3 |
Groups |Group | |0 |
IndexColumns |Catalog | |0 |
IndexColumns |Schema | |1 |
IndexColumns |Table | |2 |
IndexColumns |Index | |3 |
IndexColumns |Column | |4 |
Indexes |Catalog | |0 |
Indexes |Schema | |1 |
Indexes |Table | |2 |
Indexes |Index | |3 |
Levels |Level | |0 |
ProcedureColumns |Catalog | |0 |
ProcedureColumns |Schema | |1 |
ProcedureColumns |Procedure | |2 |
ProcedureParameters|Catalog | |0 |
ProcedureParameters|Schema | |1 |
ProcedureParameters|Procedure | |2 |
Procedures |Catalog | |0 |
Procedures |Schema | |1 |
Procedures |Procedure | |2 |
ReplicationServers |ReplicationServer| |0 |
Roles |Role | |0 |
Sequences |Schema | |0 |
Sequences |Sequence | |1 |
Stations |Station | |0 |
Synonyms |Catalog | |0 |
Synonyms |Schema | |1 |
Synonyms |Synonym | |2 |
Tables |Catalog | |0 |
Tables |Schema | |1 |
Tables |Table | |2 |
Tables |Type | |3 |
Triggers |Catalog | |0 |
Triggers |Schema | |1 |
Triggers |Trigger | |2 |
Users |User | |0 |
Views |Catalog | |0 |
Views |Schema | |1 |
Views |View | |2 |