API Data Provider - Online Help

Schema Discovery

The API Profile supports standard ADO.NET schemas to access profile metadata.

Retrieving the Table Listing

The Tables schema collection lists all tables in the database. To retrieve the Tables schema collection, call the GetSchema method of the APIConnection class.

C#

String connectionString = "Profile=<Path to Profile>;ProfileSettings=<Profile Configuration Settings>";

using (APIConnection conn = new APIConnection(connectionString)) {
  conn.Open();
  DataTable databaseSchema = conn.GetSchema("Tables");
  foreach (DataRow row in databaseSchema.Rows) {
    Console.WriteLine(row["TABLE_NAME"]);
  }
}

Columns Returned

The Tables schema collection returns the following columns.

Column NameData TypeDescription
TABLE_CATALOGSystem.StringThe database that contains the table.
TABLE_SCHEMASystem.StringThe schema that contains the table.
TABLE_NAMESystem.StringThe table name.
TABLE_TYPESystem.StringThe table type.

Retrieving Column Metadata

Call the GetSchema method of the APIConnection class to retrieve the Columns or ViewColumns schema collections. You can restrict results by table name, as shown in the example below.

C#

string connectionString = "Profile=<Path to Profile>;ProfileSettings=<Profile Configuration Settings>";

using (APIConnection conn = new APIConnection(connectionString)) {
  conn.Open();
  DataTable databaseSchema = conn.GetSchema("Columns", new string[] {"NorthwindOData"});
  foreach (DataRow column in databaseSchema.Rows) {
    Console.WriteLine(column["COLUMN_NAME"]);
    Console.WriteLine(column["IS_KEY"]);
    Console.WriteLine(column["DATA_TYPE"]);
  }
}

Columns Returned

The Columns and ViewColumns schema collections and DataTables returned from the query contain the following columns.

Column NameData TypeDescription
TABLE_CATALOGSystem.StringThe database containing the table.
TABLE_SCHEMASystem.StringThe schema containing the table.
TABLE_NAMESystem.StringThe table containing the column.
COLUMN_NAMESystem.StringThe column name.
ORDINAL_POSITIONSystem.Int32The sequence number of the column.
COLUMN_DEFAULTSystem.StringThe default value of the column.
IS_NULLABLESystem.StringWhether the column allows null values. This value is YES or NO.
DATA_TYPESystem.StringThe column data type.
CHARACTER_MAXIMUM_LENGTHSystem.Int32The maximum length in characters of a column with character data.
NUMERIC_PRECISIONSystem.Int32The maximum number of digits allowed for numeric data.
NUMERIC_SCALESystem.Int32The maximum column scale or the number of digits to the right of the decimal point in numeric data.
DATETIME_PRECISIONSystem.Int32Returns the precision in fractional seconds if the parameter type is datetime or smalldatetime. Otherwise, returns NULL.
CHARACTER_SET_NAMESystem.StringThe name of the character set for a column with character data.
COLUMN_COMMENTSystem.StringA brief description of the column.
IS_KEYSystem.BooleanWhether the column is the primary key of the table referenced by TABLE_NAME.
IS_READONLYSystem.BooleanWhether the column is read-only.
PROVIDER_TYPESystem.TypeIndicates the appropriate data type dependent on the language you are executing in.

Copyright (c) 2021 CData Software, Inc. - All rights reserved.
Build 20.0.7711.0