Main Page Namespace List Class Hierarchy Compound List File List Namespace Members Compound Members
odbc::DatabaseMetaData Class Reference
Provides several tons of information about a data source.
More...
#include <databasemetadata.h>
List of all members.
Public Types
- enum {
bestRowTemporary = SQL_SCOPE_CURROW,
bestRowTransaction = SQL_SCOPE_TRANSACTION,
bestRowSession = SQL_SCOPE_SESSION
}
- Constants for the ResultSet returned by getBestRowIdentifier.
- enum {
bestRowUnknown = SQL_PC_UNKNOWN,
bestRowPseudo = SQL_PC_PSEUDO,
bestRowNotPseudo = SQL_PC_NOT_PSEUDO
}
- Constants for the ResultSet returned by getBestRowIdentifier.
- enum {
versionColumnNotPseudo = SQL_PC_NOT_PSEUDO,
versionColumnPseudo = SQL_PC_PSEUDO,
versionColumnUnknown = SQL_PC_UNKNOWN
}
- Version column constants for getVersionColumns(). More...
- enum {
typeNoNulls = SQL_NO_NULLS,
typeNullable = SQL_NULLABLE,
typeNullableUnknown = SQL_NULLABLE_UNKNOWN
}
- Nullability constants for the resultset returned by getTypes(). More...
- enum {
columnNoNulls = SQL_NO_NULLS,
columnNullable = SQL_NULLABLE,
columnNullableUnknown = SQL_NULLABLE_UNKNOWN
}
- Nullability constants for the resultset returned by getColumns(). More...
- enum {
typePredNone = SQL_UNSEARCHABLE,
typePredChar = SQL_LIKE_ONLY,
typePredBasic = SQL_ALL_EXCEPT_LIKE,
typeSearchable = SQL_SEARCHABLE
}
- Searchability constants. More...
- enum {
importedKeyCascade = SQL_CASCADE,
importedKeySetNull = SQL_SET_NULL,
importedKeyRestrict = SQL_RESTRICT,
importedKeyNoAction = SQL_RESTRICT,
importedKeySetDefault
}
- Imported key UPDATE_RULE and DELETE_RULE constants. More...
- enum {
tableIndexClustered = SQL_INDEX_CLUSTERED,
tableIndexHashed = SQL_INDEX_HASHED,
tableIndexOther = SQL_INDEX_OTHER,
tableIndexStatistic = SQL_TABLE_STAT
}
- Index type constants.
- enum {
procedureColumnIn = SQL_PARAM_INPUT,
procedureColumnInOut = SQL_PARAM_INPUT_OUTPUT,
procedureColumnOut = SQL_PARAM_OUTPUT,
procedureColumnResult = SQL_RESULT_COL,
procedureColumnReturn = SQL_RETURN_VALUE,
procedureColumnUnknown = SQL_PARAM_TYPE_UNKNOWN
}
- Procedure column type constants for getProcedureColumns(). More...
- enum {
procedureNoNulls = SQL_NO_NULLS,
procedureNullable = SQL_NULLABLE,
procedureNullableUnknown = SQL_NULLABLE_UNKNOWN
}
- Procedure column nullability constants for getProcedureColumns(). More...
- enum {
procedureReturnsResult = SQL_PT_FUNCTION,
procedureNoResult = SQL_PT_PROCEDURE,
procedureResultUnknown = SQL_PT_UNKNOWN
}
- Procedure type constants for PROCEDURE_TYPE in getProcedures(). More...
Public Methods
-
Connection* getConnection ()
- Returns the Connection this came from.
-
std::string getDatabaseProductName ()
- Returns the name of the database product.
-
std::string getDatabaseProductVersion ()
- Returns the version of the database product as a string.
-
std::string getDriverName ()
- Returns the name of the ODBC driver used.
-
std::string getDriverVersion ()
- Returns the version of the ODBC driver used.
-
int getDriverMajorVersion ()
- Returns the major ODBC version of the driver used.
-
int getDriverMinorVersion ()
- Returns the minor ODBC version of the driver used.
- std::string getIdentifierQuoteString ()
- Returns the string that can be used to quote identifiers. More...
- std::string getCatalogTerm ()
- Returns the term for catalog used by the data source. More...
-
std::string getSchemaTerm ()
- Returns the term for schema used by the data source, for example "owner" or just "schema".
-
std::string getTableTerm ()
- Returns the term for table used by the data source.
-
std::string getProcedureTerm ()
- Returns the term the data source uses for a procedure, for example "stored procedure".
-
std::string getUserName ()
- Returns the user name of the connection.
- std::string getCatalogSeparator ()
- Returns the string used to separate a catalog in a fully qualified identifier. More...
- bool isCatalogAtStart ()
- Returns true if the catalog is positioned at the beginning of a fully qualified identifier. More...
-
std::string getSQLKeywords ()
- Returns a comma-separated list of all non-ODBC keywords specific to this data source.
-
bool supportsTransactions ()
- Returns true if the data source supports transactions.
- int getDefaultTransactionIsolation ()
- Returns the default transaction isolation level. More...
- bool supportsTransactionIsolationLevel (int lev)
- Returns true if the data source supports the specified transaction isolation level. More...
- bool supportsDataDefinitionAndDataManipulationTransactions ()
- Checks if the data source supports both DML and DDL in transactions. More...
- bool supportsDataManipulationTransactionsOnly ()
- Checks if the data source only supports DML in transactions. More...
- bool dataDefinitionCausesTransactionCommit ()
- Checks if DDL in a transaction will cause the transaction to be committed. More...
- bool dataDefinitionIgnoredInTransactions ()
- Checks if DDL in a transaction is ignored. More...
- bool supportsOpenCursorsAcrossCommit ()
- Returns true if the data source and the driver can handle open cursors (eg. More...
- bool supportsOpenCursorsAcrossRollback ()
- Returns true if the data source and the driver can handle open cursors (eg. More...
-
bool supportsOpenStatementsAcrossCommit ()
- Returns true if the data source and the driver can handle open statements across a commit, or false if they are invalidated.
-
bool supportsOpenStatementsAcrossRollback ()
- Returns true if the data source and the driver can handle open statements across a rollback, or false if they are invalidated.
- bool supportsResultSetType (int type)
- Returns true if the data source supports the given result set type. More...
- bool supportsResultSetConcurrency (int type, int concurrency)
- Returns true if the data source supports the given result set concurrency for the given result set type. More...
-
bool supportsCatalogsInDataManipulation ()
- Returns true if catalogs are supported in DML.
-
bool supportsCatalogsInProcedureCalls ()
- Returns true if catalogs are supported in procedure call statements.
-
bool supportsCatalogsInTableDefinitions ()
- Returns true if catalogs are supported in CREATE/ALTER TABLE statements.
-
bool supportsCatalogsInIndexDefinitions ()
- Returns true if catalogs are supported in index definitions.
-
bool supportsCatalogsInPrivilegeDefinitions ()
- Returns true if catalogs are supported in privilege definition statements.
-
bool supportsSchemasInDataManipulation ()
- Returns true if schemas are supported in DML.
-
bool supportsSchemasInProcedureCalls ()
- Returns true if schemas are supported in procedure call statements.
-
bool supportsSchemasInTableDefinitions ()
- Returns true if schemas are supported in CREATE/ALTER TABLE statements.
-
bool supportsSchemasInIndexDefinitions ()
- Returns true if schemas are supported in index definitions.
-
bool supportsSchemasInPrivilegeDefinitions ()
- Returns true if schemas are supported in privilege definition statements.
-
bool nullPlusNonNullIsNull ()
- Returns true if NULL plus a non-NULL value yields NULL.
-
bool supportsColumnAliasing ()
- Returns true if the data source supports column aliasing, for example SELECT COLUMN1 [AS] C1 FROM TABLE.
-
bool supportsConvert ()
- Returns true if the CONVERT function is supported by the data source.
-
bool supportsConvert (int fromType, int toType)
- Returns true if CONVERT between fromType and toType is supported.
-
bool supportsAlterTableWithDropColumn ()
- Returns true if ALTER TABLE with drop column is supported.
-
bool supportsAlterTableWithAddColumn ()
- Returns true if ALTER TABLE with add column is supported.
-
std::string getExtraNameCharacters ()
- Returns the extra characters beyond A-Z, a-z, 0-9 and _ that can be used in unquoted identifier names.
-
std::string getSearchStringEscape ()
- Returns the string that can be used to escape wildcard characters.
-
std::string getTimeDateFunctions ()
- Returns a comma-separated list of all time and date functions supported.
-
std::string getSystemFunctions ()
- Returns a comma-separated list of all system functions supported.
-
std::string getStringFunctions ()
- Returns a comma-separated list of all string functions supported.
-
std::string getNumericFunctions ()
- Returns a comma-separated list of all numeric functions supported.
-
bool supportsLikeEscapeClause ()
- Returns true if the escape character is supported in LIKE clauses.
-
bool supportsMultipleResultSets ()
- Returns true if a query can return multiple ResultSets.
-
bool supportsMultipleTransactions ()
- Returns true if multiple transactions can be open at once on different connections.
-
bool supportsNonNullableColumns ()
- Returns true if columns can be defined as non-nullable.
-
bool supportsMinimumSQLGrammar ()
- Returns true if the data source supports ODBC minimum SQL grammar.
-
bool supportsCoreSQLGrammar ()
- Returns true if the data source supports the core ODBC SQL grammar.
-
bool supportsExtendedSQLGrammar ()
- Returns true if the data source supports the ODBC extended SQL grammar.
-
bool supportsANSI92EntryLevelSQL ()
- Returns true if the data source supports the ANSI92 entry level SQL grammar.
-
bool supportsANSI92IntermediateSQL ()
- Returns true if the data source supports the ANSI92 intermediate level SQL grammar.
-
bool supportsANSI92FullSQL ()
- Returns true if the data source supports the full ANSI92 SQL grammar.
- bool supportsPositionedDelete ()
- Checks if the data source supports positioned delete. More...
- bool supportsPositionedUpdate ()
- Checks if the data source supports positioned update. More...
- bool supportsSelectForUpdate ()
- Checks if the data source supports. More...
-
bool supportsIntegrityEnhancementFacility ()
- Returns true if the data source supports the SQL Integrity Enhancement Facility.
-
bool supportsBatchUpdates ()
- Whether the data source supports batch updates.
-
bool supportsSubqueriesInComparisons ()
- Returns true if the data source supports subqueries in comparisons.
-
bool supportsSubqueriesInExists ()
- Returns true if the data source supports subqueries in
"EXISTS"
expressions.
-
bool supportsSubqueriesInIns ()
- Returns true if the data source supports subqueries in
"IN"
expressions.
-
bool supportsSubqueriesInQuantifieds ()
- Returns true if the data source supports subqueries in quantified expressions.
-
bool supportsCorrelatedSubqueries ()
- Returns true if the data source supports correlated subqueries.
- bool ownUpdatesAreVisible (int type)
- Returns true if updated rows are available with their new values in the ResultSet. More...
- bool ownDeletesAreVisible (int type)
- Returns true if deleted rows dissapear from a ResultSet. More...
- bool ownInsertsAreVisible (int type)
- Returns true if inserted rows become available in a ResultSet. More...
- bool othersUpdatesAreVisible (int type)
- Returns true if rows updated by others are visible with their new values. More...
- bool othersDeletesAreVisible (int type)
- Returns true if rows deleted by others disapear from a ResultSet. More...
- bool othersInsertsAreVisible (int type)
- Returns true if rows inserted by others become available in a ResultSet. More...
- bool deletesAreDetected (int type)
- Returns true if a deleted row can be detected with ResultSet::rowDeleted(). More...
- bool insertsAreDetected (int type)
- Returns true if an inserted row can be detected with ResultSet::rowInserted(). More...
- bool updatesAreDetected (int type)
- Returns true if ResultSet::rowUpdated() can determine whether a row has been updated. More...
-
int getMaxBinaryLiteralLength ()
- Returns the max number of hex characters allowed in an inline binary literal.
-
int getMaxCharLiteralLength ()
- Returns the maximum length of an inline character string.
-
int getMaxColumnNameLength ()
- Returns the maximum length of a column name.
-
int getMaxColumnsInGroupBy ()
- Returns the maximum number of columns this data source can have in a GROUP BY clause.
-
int getMaxColumnsInIndex ()
- Returns the maximum number of columns allowed in an index.
-
int getMaxColumnsInOrderBy ()
- Returns the maximum number of columns this data source can have in an ORDER BY clause.
-
int getMaxColumnsInSelect ()
- Returns the maximum number of columns this data source can SELECT.
-
int getMaxColumnsInTable ()
- Returns the maximum number of columns a table can consist of.
-
int getMaxCursorNameLength ()
- Returns the maximum length of a cursor name.
-
int getMaxIndexLength ()
- Returns the maximum length of an index in bytes.
-
int getMaxSchemaNameLength ()
- Returns the maximum length of a schema name.
-
int getMaxProcedureNameLength ()
- Returns the maximum length of a procedure name.
-
int getMaxCatalogNameLength ()
- Returns the maximum length of a catalog name.
-
int getMaxRowSize ()
- Returns the maximum size of a row in bytes.
-
bool doesMaxRowSizeIncludeBlobs ()
- Returns true if the value returned by getMaxRowSize() includes BLOBs.
-
int getMaxStatementLength ()
- Returns the maximum length of a statement (query).
-
int getMaxTableNameLength ()
- Returns the maximum length of a table name.
- int getMaxTablesInSelect ()
- Returns the maximum number of tables that can be joined at once. More...
-
int getMaxUserNameLength ()
- Returns the maximum length of a username.
-
int getMaxConnections ()
- Returns the maximum number of connections we can have open to this data source.
-
int getMaxStatements ()
- Returns the maximim number of statements that can be open on this connection.
-
bool supportsMixedCaseIdentifiers ()
- Returns true if the data source supports case sensitive mixed case identifiers.
-
bool supportsMixedCaseQuotedIdentifiers ()
- Returns true if the data source supports case sensitive mixed case quoted identifiers.
-
bool supportsStoredProcedures ()
- Returns true if the data source supports some form of stored procedures.
-
bool supportsGroupBy ()
- Returns true if the data source supports the GROUP BY clause.
-
bool supportsGroupByUnrelated ()
- Returns true if the columns in a GROUP BY clause are independent of the selected ones.
-
bool supportsGroupByBeyondSelect ()
- Returns true if the columns in a GROUP BY don't have to be selected.
-
bool supportsUnion ()
- Returns true if the data source supports UNION joins.
-
bool supportsUnionAll ()
- Returns true if the data source supports UNION ALL joins.
-
bool supportsOuterJoins ()
- Returns true if the data source supports some form of outer joins.
-
bool supportsFullOuterJoins ()
- Returns true if the data source fully supports outer joins.
-
bool supportsLimitedOuterJoins ()
- Returns true if the data source only supports certain types of outer joins.
-
bool usesLocalFilePerTable ()
- Returns true if the data source uses a file for each table.
-
bool usesLocalFiles ()
- Returns true if the data source uses local files.
-
bool nullsAreSortedAtStart ()
- Returns true if NULL values are sorted first, regardless of the sort order.
-
bool nullsAreSortedAtEnd ()
- Returns true if NULL values are sorted last, regardless of the sort order.
-
bool nullsAreSortedHigh ()
- Returns true if NULL values are sorted high.
-
bool nullsAreSortedLow ()
- Returns true if NULL values are sorted low.
-
bool allProceduresAreCallable ()
- Returns true if all procedures returned by getProcedures() are callable by the current user.
-
bool allTablesAreSelectable ()
- Returns true if all tables returned by getTables() are selectable by the current user.
-
bool isReadOnly ()
- Returns true if the data source or the current connection is in read-only mode.
-
bool storesLowerCaseIdentifiers ()
- Returns true if the data source treats identifiers as case insensitive and stores them in lower case.
-
bool storesLowerCaseQuotedIdentifiers ()
- Returns true if the data source treats quoted identifiers as case insensitive and stores them in lower case.
-
bool storesMixedCaseIdentifiers ()
- Returns true if the data source treats identifiers as case insensitive and stores them in mixed case.
-
bool storesMixedCaseQuotedIdentifiers ()
- Returns true if the data source treats quoted identifiers as case insensitive and stores them in mixed case.
-
bool storesUpperCaseIdentifiers ()
- Returns true if the data source treats identifiers as case insensitive and stores them in upper case.
-
bool storesUpperCaseQuotedIdentifiers ()
- Returns true if the data source treats quoted identifiers as case insensitive and stores them in upper case.
- ResultSet* getTypeInfo ()
- Fetches a list of data types supported by this data source. More...
- ResultSet* getColumns (const std::string& catalog, const std::string& schemaPattern, const std::string& tableNamePattern, const std::string& columnNamePattern)
- Fetches the available columns in a catalog. More...
- ResultSet* getTables (const std::string& catalog, const std::string& schemaPattern, const std::string& tableNamePattern, const std::vector<std::string>& types)
- Fetches the available tables in the data source. More...
- ResultSet* getTablePrivileges (const std::string& catalog, const std::string& schemaPattern, const std::string& tableNamePattern)
- Fetches a list of access rights for tables in a catalog. More...
- ResultSet* getColumnPrivileges (const std::string& catalog, const std::string& schema, const std::string& table, const std::string& columnNamePattern)
- Fetches a list of access rights for a table's columns. More...
- ResultSet* getPrimaryKeys (const std::string& catalog, const std::string& schema, const std::string& table)
- Fetches a list of primary keys for a table. More...
- ResultSet* getIndexInfo (const std::string& catalog, const std::string& schema, const std::string& table, bool unique, bool approximate)
- Fetches a list of indices and statistics for a table. More...
- ResultSet* getCrossReference (const std::string& primaryCatalog, const std::string& primarySchema, const std::string& primaryTable, const std::string& foreignCatalog, const std::string& foreignSchema, const std::string& foreignTable)
- Figures out in which way a foreign key table references a primary key table. More...
- ResultSet* getImportedKeys (const std::string& catalog, const std::string& schema, const std::string& table)
- Fetches a list of columns that are foreign keys to other tables' primary keys. More...
- ResultSet* getExportedKeys (const std::string& catalog, const std::string& schema, const std::string& table)
- Fetches a list of columns that reference a table's primary keys. More...
- ResultSet* getProcedures (const std::string& catalog, const std::string& schemaPattern, const std::string& procedureNamePattern)
- Returns available procedures in a catalog. More...
- ResultSet* getProcedureColumns (const std::string& catalog, const std::string& schemaPattern, const std::string& procedureNamePattern, const std::string& columnNamePattern)
- Returns available procedure columns in a catalog. More...
- ResultSet* getBestRowIdentifier (const std::string& catalog, const std::string& schema, const std::string& table, int scope, bool nullable)
- Returns the optimal set of columns that identifies a row. More...
- ResultSet* getVersionColumns (const std::string& catalog, const std::string& schema, const std::string& table)
- Returns a list of columns for a table that are automatically updated when anything in a row is updated. More...
- ResultSet* getTableTypes ()
- Fetches the table types the database supports. More...
- ResultSet* getSchemas ()
- Returns a list of available schemas in the database. More...
- ResultSet* getCatalogs ()
- Returns a list of available catalogs in the database. More...
Detailed Description
Provides several tons of information about a data source.
-
Warning:
-
The column names in ResultSets returned by methods of DatabaseMetaData can differ depending on what ODBC version the current driver supports. To avoid problems, columns should be referenced by number, and not by name. Also note that ODBC version 2 drivers do not return some of the specified columns.
Member Enumeration Documentation
Nullability constants for the resultset returned by getTypes().
-
See also:
-
getTypes()
Searchability constants.
-
Enumeration values:
-
typePredNone
|
Column is unsearchable. |
typePredChar
|
Column can only be used in a LIKE clause. |
typePredBasic
|
Column can be used in searches, except in LIKE. |
typeSearchable
|
Column is searchable. |
Imported key UPDATE_RULE and DELETE_RULE constants.
-
See also:
-
getImportedKeys()
Member Function Documentation
bool odbc::DatabaseMetaData::dataDefinitionCausesTransactionCommit (
|
)
|
|
bool odbc::DatabaseMetaData::dataDefinitionIgnoredInTransactions (
|
)
|
|
bool odbc::DatabaseMetaData::deletesAreDetected (
|
int type )
|
|
ResultSet * odbc::DatabaseMetaData::getBestRowIdentifier (
|
const std::string & catalog,
|
|
const std::string & schema,
|
|
const std::string & table,
|
|
int scope,
|
|
bool nullable )
|
|
Returns the optimal set of columns that identifies a row.
The returned ResultSet is ordered by SCOPE
and has the following columns:
- SCOPE - short - scope of this result:
bestRowTemporary
- temporary, only while a ResultSet is using the row bestRowTransaction
- valid until the current transaction ends bestRowSession
- valid through the whole session - until the connection is closed
- COLUMN_NAME - string - the column name
- DATA_TYPE - short - the type of the column from Types
- TYPE_NAME - string - native type name (data source dependent)
- COLUMN_SIZE - int - the size (precision) of the column.
- BUFFER_LENGTH - int - unused
- DECIMAL_DIGITS - short - scale if applicable. Can be
NULL
. - PSEUDO_COLUMN - short - whether this is a pseudo column:
bestRowUnknown
- it is unknown whether this is a pseudo column bestRowNotPseudo
- it is definitely not a pseudo column bestRowPseudo
- it is definitely a pseudo column
-
Parameters:
-
catalog
|
the catalog name |
schema
|
the schema name |
table
|
the table name |
scope
|
the scope of interest, same values as the SCOPE column. |
nullable
|
whether nullable columns should be included |
std::string odbc::DatabaseMetaData::getCatalogSeparator (
|
)
|
|
Returns the string used to separate a catalog in a fully qualified identifier.
For example Oracle would return a "@", while mysql would say ".".
std::string odbc::DatabaseMetaData::getCatalogTerm (
|
)
|
|
Returns the term for catalog used by the data source.
Can be for example "directory" or "database".
ResultSet * odbc::DatabaseMetaData::getCatalogs (
|
)
|
|
Returns a list of available catalogs in the database.
The returned ResultSet is the same as with getTables(), except that all columns but TABLE_CAT are NULL values.
ResultSet * odbc::DatabaseMetaData::getColumnPrivileges (
|
const std::string & catalog,
|
|
const std::string & schema,
|
|
const std::string & table,
|
|
const std::string & columnNamePattern )
|
|
Fetches a list of access rights for a table's columns.
The returned ResultSet is ordered by COLUMN_NAME
and PRIVILEGE
. It contains the following columns:
- TABLE_CAT - string - table catalog (can be
NULL
) - TABLE_SCHEM - string - table schema (can be
NULL
) - TABLE_NAME - string - table name
- COLUMN_NAME - string - column name
- GRANTOR - string - grantor (can be
NULL
). If GRANTEE
owns the object, GRANTOR
is "SYSTEM"
. - GRANTEE - string - grantee
- PRIVILEGE - string - one of
"SELECT"
, "INSERT"
, "UPDATE"
, "DELETE"
, "REFERENCES"
or a data source specific value - IS_GRANTABLE - string -
"YES"
if GRANTEE
can grant this privilege to other users. "NO"
if not. NULL
if unknown.
ResultSet * odbc::DatabaseMetaData::getColumns (
|
const std::string & catalog,
|
|
const std::string & schemaPattern,
|
|
const std::string & tableNamePattern,
|
|
const std::string & columnNamePattern )
|
|
Fetches the available columns in a catalog.
The returned ResultSet has the following columns:
- TABLE_CAT - string - table catalog (can be NULL)
- TABLE_SCHEM - string - table schema (can be NULL)
- TABLE_NAME - string - table name
- COLUMN_NAME - string - column name
- COLUMN_TYPE - short - see Types
- TYPE_NAME - string - the name of the type. Data source dependent.
- COLUMN_SIZE - int - column size. For character and date types, this is the maximum number of characters. For numeric types this is the precision.
- BUFFER_LENGTH - not used
- DECIMAL_DIGITS - int - the number of fractional digits.
- NUM_PREC_RADIX - int - radix
- NULLABLE - int - whether the column allows NULLs
columnNoNulls
- might not allow NULLs columnNullable
- definitely allows NULLs columnNullableUnknown
- nullability is unknown
- REMARKS - string - comments on the column (can be NULL)
- COLUMN_DEF - string - default value (can be NULL)
- SQL_DATA_TYPE - short -
- SQL_DATETIME_SUB - short -
- CHAR_OCTET_LENGTH - int - for character data types the maximum number of bytes in the column
- ORDINAL_POSITION - int - 1-based index in the table
- IS_NULLABLE - string -
"NO"
means in no way nullable, "YES"
means possibly nullable. Empty string means nobody knows.
ResultSet * odbc::DatabaseMetaData::getCrossReference (
|
const std::string & primaryCatalog,
|
|
const std::string & primarySchema,
|
|
const std::string & primaryTable,
|
|
const std::string & foreignCatalog,
|
|
const std::string & foreignSchema,
|
|
const std::string & foreignTable )
|
|
Figures out in which way a foreign key table references a primary key table.
Returns it's findings in a ResultSet, ordered by FKTABLE_CAT
, FKTABLE_SCHEM
, FKTABLE_NAME
and KEY_SEQ
. The ResultSet contains the following columns:
- PKTABLE_CAT - string - primary key table catalog
- PKTABLE_SCHEM - string - primary key table schema
- PKTABLE_NAME - string - primary key table name
- PKCOLUMN_NAME - string - primary key column name
- FKTABLE_CAT - string - foreign key table catalog
- FKTABLE_SCHEM - string - foreign key table schema
- FKTABLE_NAME - string - foreign key table name
- FKCOLUMN_NAME - string - foreign key column name
- KEY_SEQ - short - column sequence number in key (1-based)
- UPDATE_RULE - short - what happens to the foreign key when the primary is updated:
importedKeyNoAction
- nothing happends since the primary key can not be updated importedKeyCascade
- change imported key to match the primary key importedKeySetNull
- update the imported key to NULL
importedKeySetDefault
- update the impored key to it's default value importedKeyRestrict
- same as importedKeyNoAction
- DELETE_RULE - short - what happens to the foreign key when the primary is deleted:
importedKeyNoAction
- nothing happends since the primary key can not be deleted importedKeyCascade
- imported key is deleted as well importedKeySetNull
- imported key is set to NULL
importedKeySetDefault
- imported key is set to it's default value importedKeyRestrict
- same as importedKeyNoAction
int odbc::DatabaseMetaData::getDefaultTransactionIsolation (
|
)
|
|
Returns the default transaction isolation level.
-
See also:
-
Connection
ResultSet * odbc::DatabaseMetaData::getExportedKeys (
|
const std::string & catalog,
|
|
const std::string & schema,
|
|
const std::string & table ) []
|
|
Fetches a list of columns that reference a table's primary keys.
The returned ResultSet is identical to the one returned by getCrossReference().
std::string odbc::DatabaseMetaData::getIdentifierQuoteString (
|
)
|
|
Returns the string that can be used to quote identifiers.
If the data source doesn't support it, returns an empty string.
ResultSet * odbc::DatabaseMetaData::getImportedKeys (
|
const std::string & catalog,
|
|
const std::string & schema,
|
|
const std::string & table ) []
|
|
Fetches a list of columns that are foreign keys to other tables' primary keys.
The returned ResultSet is identical to the one returned by getCrossReference(), except it's ordered by PKTABLE_CAT
, PKTABLE_SCHEM
, PKTABLE_NAME
and KEY_SEQ
.
ResultSet * odbc::DatabaseMetaData::getIndexInfo (
|
const std::string & catalog,
|
|
const std::string & schema,
|
|
const std::string & table,
|
|
bool unique,
|
|
bool approximate )
|
|
Fetches a list of indices and statistics for a table.
The returned ResultSet is ordered by NON_UNIQUE
, TYPE
, INDEX_QUALIFIER
, INDEX_NAME
and ORDINAL_POSITION
. It contains the following columns:
- TABLE_CAT - string - table catalog (can be
NULL
) - TABLE_SCHEM - string - table schema (can be
NULL
) - TABLE_NAME - string - table name
- NON_UNIQUE - bool -
true
if index values can be non-unique. NULL
if TYPE
is tableIndexStatistic
- INDEX_QUALIFIER - string - index catalog,
NULL
if TYPE
is tableIndexStatistic
- INDEX_NAME - string - index name,
NULL
if TYPE
is tableIndexStatistic
- TYPE - short - index type:
tableIndexStatistic
- no real index - a statistic for the table tableIndexClustered
- this index is clustered tableIndexHashed
- this index is hashed tableIndexOther
- this is some other kind of index
- ORDINAL_POSITION - short - column sequence number in index (1-based).
NULL
if TYPE
is tableIndexStatistic
. - COLUMN_NAME - string - column name.
NULL
if TYPE
is tableIndexStatistic
. - ASC_OR_DESC - string -
"A"
for ascending, "D"
for descending index. NULL
if TYPE
is tableIndexStatistic
. - CARDINALITY - int - If
TYPE
is tableIndexStatistic
, the number of rows in the table. Otherwise, the number of unique values in the index. - PAGES - int - Number of pages used for the table if
TYPE
is tableIndexStatistic
. Otherwise the number of pages used for the index. - FILTER_CONDITION - string - filter condition (if any)
-
Parameters:
-
catalog
|
the catalog name |
schema
|
the schema name |
table
|
the table name |
unique
|
whether only unique indices should be looked at |
approximate
|
whether only accurate values should be retrieved |
int odbc::DatabaseMetaData::getMaxTablesInSelect (
|
)
|
|
Returns the maximum number of tables that can be joined at once.
-
Returns:
-
zero if unknown.
ResultSet * odbc::DatabaseMetaData::getPrimaryKeys (
|
const std::string & catalog,
|
|
const std::string & schema,
|
|
const std::string & table )
|
|
Fetches a list of primary keys for a table.
The returned ResultSet is ordered by TABLE_CAT
, TABLE_SCHEM
, TABLE_NAME
and KEY_SEQ
. It contains the following columns:
- TABLE_CAT - string - table catalog (can be
NULL
) - TABLE_SCHEM - string - table schema (can be
NULL
) - TABLE_NAME - string - table name
- COLUMN_NAME - string - column name
- KEY_SEQ - string - sequence number in primary key (1-based)
- PK_NAME - string - primary key (constraint) name. Can be
NULL
.
ResultSet * odbc::DatabaseMetaData::getProcedureColumns (
|
const std::string & catalog,
|
|
const std::string & schemaPattern,
|
|
const std::string & procedureNamePattern,
|
|
const std::string & columnNamePattern )
|
|
Returns available procedure columns in a catalog.
The returned ResultSet is ordered by PROCEDURE_CAT
, PROCEDURE_SCHEM
, PROCEDURE_NAME
and COLUMN_NAME
. It contains the following columns:
- PROCEDURE_CAT - string - the procedure catalog
- PROCEDURE_SCHEM - string - the procedure schema
- PROCEDURE_NAME - string - the procedure name
- COLUMN_NAME - string - the column name
- COLUMN_TYPE - short - the column type
procedureColumnUnknown
- beats the driver procedureColumnIn
- IN
parameter procedureColumnInOut
- IN OUT
parameter procedureColumnOut
- OUT
parameter procedureColumnReturn
- procedure return value (eg. this procedure is actually a function) procedureColumnResult
- this column is part of a ResultSet this procedure returns
- DATA_TYPE - int - SQL type of the column
- TYPE_NAME - string - native type name
- COLUMN_SIZE - int - the precision of the column
- BUFFER_LENGTH - int - nothing of interest
- DECIMAL_DIGITS - short - scale, if applicable
- NUM_PREC_RADIX - short - radix, if applicable
- NULLABLE - short - whether the column is nullable
procedureNoNulls
- not nullable procedureNullable
- nullable procedureNullableUnknown
- nobody knows
- REMARKS - string - comments on the column
Note: more columns can be returned depending on the driver.
ResultSet * odbc::DatabaseMetaData::getProcedures (
|
const std::string & catalog,
|
|
const std::string & schemaPattern,
|
|
const std::string & procedureNamePattern )
|
|
Returns available procedures in a catalog.
The returned ResultSet is ordered by PROCEDURE_CAT
, PROCEDURE_SCHEM
and PROCEDURE_NAME
. It contains the following columns:
- PROCEDURE_CAT - string - the procedure catalog
- PROCEDURE_SCHEM - string - the procedure schema
- PROCEDURE_NAME - string - the procedure name
- NUM_INPUT_PARAMS - reserved for future use
- NUM_OUTPUT_PARAMS - reserved for future use
- NUM_RESULT_SETS - reserved for future use
- REMARKS - string - comments on the procedure
- PROCEDURE_TYPE - short - the procedure type:
procedureResultUnknown
- can possibly return a result, but nobody is sure procedureNoResult
- does not return a result procedureReturnsResult
- returns a result
ResultSet * odbc::DatabaseMetaData::getSchemas (
|
)
|
|
Returns a list of available schemas in the database.
The returned ResultSet is the same as with getTables(), except that all columns but TABLE_SCHEM contain NULL values.
ResultSet * odbc::DatabaseMetaData::getTablePrivileges (
|
const std::string & catalog,
|
|
const std::string & schemaPattern,
|
|
const std::string & tableNamePattern )
|
|
Fetches a list of access rights for tables in a catalog.
A table privilege applies to one or more columns in a table. Do not assume that this privilege is valid for all columns.
The returned ResultSet is ordered by TABLE_CAT
, TABLE_SCHEM
, TABLE_NAME
and PRIVILEGE
. It contains the following columns:
- TABLE_CAT - string - table catalog (can be
NULL
) - TABLE_SCHEM - string - table schema (can be
NULL
) - TABLE_NAME - string - table name
- GRANTOR - string - grantor (can be
NULL
). If GRANTEE
owns the object, GRANTOR
is "SYSTEM"
. - GRANTEE - string - grantee
- PRIVILEGE - string - one of
"SELECT"
, "INSERT"
, "UPDATE"
, "DELETE"
, "REFERENCES"
or a data source specific value - IS_GRANTABLE - string -
"YES"
if GRANTEE
can grant this privilege to other users. "NO"
if not. NULL
if unknown.
ResultSet * odbc::DatabaseMetaData::getTableTypes (
|
)
|
|
Fetches the table types the database supports.
The returned ResultSet is the same as with getTables(), except that all columns but TABLE_TYPE contain NULL values.
ResultSet * odbc::DatabaseMetaData::getTables (
|
const std::string & catalog,
|
|
const std::string & schemaPattern,
|
|
const std::string & tableNamePattern,
|
|
const std::vector<std::string>& types )
|
|
Fetches the available tables in the data source.
The returned ResultSet has the following columns:
- TABLE_CAT - string - table catalog (can be NULL)
- TABLE_SCHEM - string - table schema (can be NULL)
- TABLE_NAME - string - table name
- TABLE_TYPE - string - table type
- REMARKS - string - comments on the table
-
Parameters:
-
catalog
|
the catalog name |
schemaPattern
|
schema name search pattern |
tableNamePattern
|
table name search pattern |
types
|
a list of table types. An empty list returns all table types. |
ResultSet * odbc::DatabaseMetaData::getTypeInfo (
|
)
|
|
Fetches a list of data types supported by this data source.
The returned ResultSet is ordered by DATA_TYPE
and then by how closely the type maps to the corresponding ODBC SQL type. It contains the following columns:
- TYPE_NAME - string - native type name
- DATA_TYPE - short - SQL data type from Types
- COLUMN_SIZE - int - maximum precision
- LITERAL_PREFIX - string - prefix used to quote a literal. Can be
NULL
. - LITERAL_SUFFIX - string - suffix used to quote a literal. Can be
NULL
. - CREATE_PARAMS - string - comma separated possible list of parameters to creating a column of this type
- NULLABLE - short - whether this type can contain
NULL
s:
typeNoNulls
- no typeNullable
- yes, can be nullable typeNullableUnknown
- nobody knows
- CASE_SENSITIVE - bool - whether this type is case sensitive
- SEARCHABLE - bool - whether this type can be searched, eg used in
WHERE
-clauses:
typePredNone
- no typePredChar
- yes, but only with a LIKE
predicate typePredBasic
- yes, except in a LIKE
predicate typeSearchable
- yes
- UNSIGNED_ATTRIBUTE - bool -
true
if this type is unsigned - FIXED_PREC_SCALE - bool - whether this type has predefined fixed precision and scale (eg is useful for money)
- AUTO_UNIQUE_VALUE - bool - whether this type can be used for an autoincrementing value.
NULL
if not applicable. - LOCAL_TYPE_NAME - string - localized native type name. Can be
NULL
. - MINIMUM_SCALE - short - minimum supported scale, if applicable
- MAXIMUM_SCALE - short - maximum supported scale, if applicable
- SQL_DATA_TYPE - short - unused
- SQL_DATETIME_SUB - short - unused
- NUM_PREC_RADIX - int - radix, if applicable
ResultSet * odbc::DatabaseMetaData::getVersionColumns (
|
const std::string & catalog,
|
|
const std::string & schema,
|
|
const std::string & table )
|
|
Returns a list of columns for a table that are automatically updated when anything in a row is updated.
The returned ResultSet has the following unordered columns:
- SCOPE - short - unused
- COLUMN_NAME - string - the column name
- DATA_TYPE - short - the type of the column from Types
- TYPE_NAME - string - native type name (data source dependent)
- COLUMN_SIZE - int - the size (precision) of the column.
- BUFFER_LENGTH - int - unused
- DECIMAL_DIGITS - short - scale if applicable. Can be
NULL
. - PSEUDO_COLUMN - short - whether this is a pseudo column:
versionColumnUnknown
- it is unknown whether this is a pseudo column versionColumnNotPseudo
- it is definitely not a pseudo column versionColumnPseudo
- it is definitely a pseudo column
bool odbc::DatabaseMetaData::insertsAreDetected (
|
int type )
|
|
bool odbc::DatabaseMetaData::isCatalogAtStart (
|
)
|
|
Returns true if the catalog is positioned at the beginning of a fully qualified identifier.
For example mysql would say true, while oracle would say false.
bool odbc::DatabaseMetaData::othersDeletesAreVisible (
|
int type )
|
|
Returns true if rows deleted by others disapear from a ResultSet.
-
Parameters:
-
bool odbc::DatabaseMetaData::othersInsertsAreVisible (
|
int type )
|
|
Returns true if rows inserted by others become available in a ResultSet.
-
Parameters:
-
bool odbc::DatabaseMetaData::othersUpdatesAreVisible (
|
int type )
|
|
Returns true if rows updated by others are visible with their new values.
-
Parameters:
-
bool odbc::DatabaseMetaData::ownDeletesAreVisible (
|
int type )
|
|
Returns true if deleted rows dissapear from a ResultSet.
-
Parameters:
-
bool odbc::DatabaseMetaData::ownInsertsAreVisible (
|
int type )
|
|
Returns true if inserted rows become available in a ResultSet.
-
Parameters:
-
bool odbc::DatabaseMetaData::ownUpdatesAreVisible (
|
int type )
|
|
Returns true if updated rows are available with their new values in the ResultSet.
-
Parameters:
-
bool odbc::DatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions (
|
)
|
|
bool odbc::DatabaseMetaData::supportsDataManipulationTransactionsOnly (
|
)
|
|
bool odbc::DatabaseMetaData::supportsOpenCursorsAcrossCommit (
|
)
|
|
Returns true if the data source and the driver can handle open cursors (eg.
ResultSets) across a commit, or false if they are invalidated.
bool odbc::DatabaseMetaData::supportsOpenCursorsAcrossRollback (
|
)
|
|
Returns true if the data source and the driver can handle open cursors (eg.
ResultSets) across a rollback, or false if they are invalidated.
bool odbc::DatabaseMetaData::supportsPositionedDelete (
|
)
|
|
Checks if the data source supports positioned delete.
-
Returns:
-
true
if ("DELETE WHERE CURRENT OF ..."
) is supported
bool odbc::DatabaseMetaData::supportsPositionedUpdate (
|
)
|
|
Checks if the data source supports positioned update.
-
Returns:
-
true
if ("UPDATE ... WHERE CURRENT OF ..."
) is supported
bool odbc::DatabaseMetaData::supportsResultSetConcurrency (
|
int type,
|
|
int concurrency )
|
|
Returns true if the data source supports the given result set concurrency for the given result set type.
-
Parameters:
-
type
|
The type to check for. |
concurrency
|
The concurrency level to check for. |
-
See also:
-
ResultSet
bool odbc::DatabaseMetaData::supportsResultSetType (
|
int type )
|
|
Returns true if the data source supports the given result set type.
-
Parameters:
-
type
|
The type to check for |
-
See also:
-
ResultSet
bool odbc::DatabaseMetaData::supportsSelectForUpdate (
|
)
|
|
Checks if the data source supports.
-
Returns:
-
true
if ("SELECT ... FOR UPDATE"
) is supported
bool odbc::DatabaseMetaData::supportsTransactionIsolationLevel (
|
int lev )
|
|
Returns true if the data source supports the specified transaction isolation level.
-
Parameters:
-
lev
|
The isolation level to check for |
bool odbc::DatabaseMetaData::updatesAreDetected (
|
int type )
|
|
The documentation for this class was generated from the following file:
- odbc++/databasemetadata.h