API Data Provider - Online Help

Schema Discovery

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

Retrieving the Table Listing

You can use the getTables method of the DatabaseMetaData interface to retrieve a list of tables:

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

Connection conn = DriverManager.getConnection(connectionString);
DatabaseMetaData table_meta = conn.getMetaData();
ResultSet rs=table_meta.getTables(null, null, "%", null);  
while(rs.next()){
  System.out.println(rs.getString("TABLE_NAME"));
}
The getTables method returns the following columns:

Column NameData TypeDescription
TABLE_CATStringThe table catalog.
TABLE_SCHEMStringThe table schema.
TABLE_NAMEStringThe table name.
TABLE_TYPEStringThe table type.
REMARKSStringThe table description.

Retrieving Column Metadata

You can use the getColumns method of the DatabaseMetaData interface to retrieve column information. You can restrict the results by the table name. The code example below retrieves the column names for the NorthwindOData table:

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

Connection conn = DriverManager.getConnection(connectionString);
DatabaseMetaData table_meta = conn.getMetaData();
ResultSet rs = table_meta.getColumns(null, null, "NorthwindOData", null);
while(rs.next()){
  System.out.println(rs.getString("COLUMN_NAME")); 
}
The getColumns method returns the following columns:

Column NameData TypeDescription
TABLE_CATStringThe database name.
TABLE_SCHEMStringThe table schema.
TABLE_NAMEStringThe table name.
COLUMN_NAMEStringThe column name.
DATA_TYPEintThe data type identified by the value of a constant defined in java.sql.Types.
TYPE_NAMEStringThe data type name used by the provider.
COLUMN_SIZEintThe length in characters of the column or the numeric precision.
BUFFER_LENGTHintThe buffer length.
DECIMAL_DIGITSintThe column scale or number of digits to the right of the decimal point.
NUM_PREC_RADIXintThe radix, or base.
NULLABLEintWhether the column can contain null as defined by the following JDBC DatabaseMetaData constants: columnNoNulls (0) or columnNullable (1).
REMARKSStringThe column description.
COLUMN_DEFStringThe default value for the column.
SQL_DATA_TYPEintReserved by the specification.
SQL_DATETIME_SUBintReserved by the specification.
CHAR_OCTET_LENGTHintThe maximum length of binary and character-based columns.
ORDINAL_POSITIONintThe column index, starting at 1.
IS_NULLABLEStringWhether a null value is allowed: YES or NO.
SCOPE_CATALOGStringThe table catalog that is the scope of a reference attribute.
SCOPE_SCHEMAStringThe table schema that is the scope of a reference attribute.
SCOPE_TABLEStringThe table name that is the scope of a reference attribute.
SOURCE_DATA_TYPEintThe source type of a distinct type. Or, a user-generated Ref type. If DATA_TYPE is not DISTINCT, this value is null. If a user-generated Ref, this value is null.
IS_AUTOINCREMENTStringWhether the column value is assigned by API in fixed increments.
IS_GENERATEDCOLUMNStringWhether the column is generated: YES or NO.
ISREADONLYbooleanWhether the column is read-only.
ISKEYbooleanWhether the column is a key.

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