libodbc++
0.2.5
|
Provides several tons of information about a data source. More...
#include <databasemetadata.h>
Public Types | |
enum | |
Constants for the ResultSet returned by getBestRowIdentifier. | |
enum | |
Constants for the ResultSet returned by getBestRowIdentifier. | |
enum | |
Version column constants for getVersionColumns() More... | |
enum | |
Nullability constants for the resultset returned by getTypes() More... | |
enum | |
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 | |
Imported key UPDATE_RULE and DELETE_RULE constants. More... | |
enum | |
Index type constants. | |
enum | |
Procedure column type constants for getProcedureColumns() More... | |
enum | |
Procedure column nullability constants for getProcedureColumns() More... | |
enum | |
Procedure type constants for PROCEDURE_TYPE in getProcedures() More... | |
Public Member Functions | |
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. | |
std::string | getCatalogTerm () |
Returns the term for catalog used by the data source. | |
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. | |
bool | isCatalogAtStart () |
Returns true if the catalog is positioned at the beginning of a fully qualified identifier. | |
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. | |
bool | supportsTransactionIsolationLevel (int lev) |
Returns true if the data source supports the specified transaction isolation level. | |
bool | supportsDataDefinitionAndDataManipulationTransactions () |
Checks if the data source supports both DML and DDL in transactions. | |
bool | supportsDataManipulationTransactionsOnly () |
Checks if the data source only supports DML in transactions. | |
bool | dataDefinitionCausesTransactionCommit () |
Checks if DDL in a transaction will cause the transaction to be committed. | |
bool | dataDefinitionIgnoredInTransactions () |
Checks if DDL in a transaction is ignored. | |
bool | supportsOpenCursorsAcrossCommit () |
Returns true if the data source and the driver can handle open cursors (eg. | |
bool | supportsOpenCursorsAcrossRollback () |
Returns true if the data source and the driver can handle open cursors (eg. | |
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. | |
bool | supportsResultSetConcurrency (int type, int concurrency) |
Returns true if the data source supports the given result set concurrency for the given result set type. | |
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. | |
bool | supportsPositionedUpdate () |
Checks if the data source supports positioned update. | |
bool | supportsSelectForUpdate () |
Checks if the data source supports. | |
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. | |
bool | ownDeletesAreVisible (int type) |
Returns true if deleted rows dissapear from a ResultSet. | |
bool | ownInsertsAreVisible (int type) |
Returns true if inserted rows become available in a ResultSet. | |
bool | othersUpdatesAreVisible (int type) |
Returns true if rows updated by others are visible with their new values. | |
bool | othersDeletesAreVisible (int type) |
Returns true if rows deleted by others disapear from a ResultSet. | |
bool | othersInsertsAreVisible (int type) |
Returns true if rows inserted by others become available in a ResultSet. | |
bool | deletesAreDetected (int type) |
Returns true if a deleted row can be detected with ResultSet::rowDeleted(). | |
bool | insertsAreDetected (int type) |
Returns true if an inserted row can be detected with ResultSet::rowInserted(). | |
bool | updatesAreDetected (int type) |
Returns true if ResultSet::rowUpdated can determine whether a row has been updated. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
ResultSet * | getPrimaryKeys (const std::string &catalog, const std::string &schema, const std::string &table) |
Fetches a list of primary keys for a table. | |
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. | |
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. | |
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. | |
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. | |
ResultSet * | getProcedures (const std::string &catalog, const std::string &schemaPattern, const std::string &procedureNamePattern) |
Returns available procedures in a catalog. | |
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. | |
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. | |
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. | |
ResultSet * | getTableTypes () |
Fetches the table types the database supports. | |
ResultSet * | getSchemas () |
Returns a list of available schemas in the database. | |
ResultSet * | getCatalogs () |
Returns a list of available catalogs in the database. | |
Provides several tons of information about a data source.
anonymous enum |
Procedure type constants for PROCEDURE_TYPE in getProcedures()
anonymous enum |
Version column constants for getVersionColumns()
anonymous enum |
Nullability constants for the resultset returned by getTypes()
anonymous enum |
Nullability constants for the resultset returned by getColumns().
anonymous enum |
anonymous enum |
Imported key UPDATE_RULE and DELETE_RULE constants.
anonymous enum |
Procedure column type constants for getProcedureColumns()
anonymous enum |
Procedure column nullability constants for getProcedureColumns()
bool odbc::DatabaseMetaData::dataDefinitionCausesTransactionCommit | ( | ) |
Checks if DDL in a transaction will cause the transaction to be committed.
UPDATE
, INSERT
) within a transaction and any data definition (eg. CREATE TABLE
) will cause the transaction to be committed.If this method returns true
, supportsDataDefinitionAndDataManipulationTransactions(), supportsDataManipulationTransactionsOnly() and dataDefinitionIgnoredInTransactions() all return false
.
bool odbc::DatabaseMetaData::dataDefinitionIgnoredInTransactions | ( | ) |
Checks if DDL in a transaction is ignored.
UPDATE
, INSERT
) within a transaction and any data definition (eg. CREATE TABLE
) will be ignored.If this method returns true
, supportsDataDefinitionAndDataManipulationTransactions(), supportsDataManipulationTransactionsOnly() and dataDefinitionCausesTransactionCommit() all return false
.
bool odbc::DatabaseMetaData::deletesAreDetected | ( | int | type | ) |
Returns true if a deleted row can be detected with ResultSet::rowDeleted().
type | The type of ResultSet of interest |
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:
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 NULL
. 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 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 |
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.
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::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:
NULL
) NULL
) NULL
). If GRANTEE
owns the object, GRANTOR
is "SYSTEM"
. "SELECT"
, "INSERT"
, "UPDATE"
, "DELETE"
, "REFERENCES"
or a data source specific value "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:
columnNoNulls
- might not allow NULLs columnNullable
- definitely allows NULLs columnNullableUnknown
- nullability is unknown "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:
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
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.
int odbc::DatabaseMetaData::getDriverMajorVersion | ( | ) |
Returns the major ODBC version of the driver used.
int odbc::DatabaseMetaData::getDriverMinorVersion | ( | ) |
Returns the minor ODBC version of the driver used.
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:
NULL
) NULL
) true
if index values can be non-unique. NULL
if TYPE
is tableIndexStatistic
NULL
if TYPE
is tableIndexStatistic
NULL
if TYPE
is tableIndexStatistic
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 NULL
if TYPE
is tableIndexStatistic
. NULL
if TYPE
is tableIndexStatistic
. "A"
for ascending, "D"
for descending index. NULL
if TYPE
is tableIndexStatistic
. TYPE
is tableIndexStatistic
, the number of rows in the table. Otherwise, the number of unique values in the index. TYPE
is tableIndexStatistic
. Otherwise the number of pages used for the index. 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.
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:
NULL
) NULL
) 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:
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 procedureNoNulls
- not nullable procedureNullable
- nullable procedureNullableUnknown
- nobody knows 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:
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:
NULL
) NULL
) NULL
). If GRANTEE
owns the object, GRANTOR
is "SYSTEM"
. "SELECT"
, "INSERT"
, "UPDATE"
, "DELETE"
, "REFERENCES"
or a data source specific value "YES"
if GRANTEE
can grant this privilege to other users. "NO"
if not. NULL
if unknown. 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:
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::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::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:
NULL
. NULL
. NULL
s: typeNoNulls
- no typeNullable
- yes, can be nullable typeNullableUnknown
- nobody knows WHERE
-clauses: typePredNone
- no typePredChar
- yes, but only with a LIKE
predicate typePredBasic
- yes, except in a LIKE
predicate typeSearchable
- yes true
if this type is unsigned NULL
if not applicable. NULL
. 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:
NULL
. 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 | ) |
Returns true if an inserted row can be detected with ResultSet::rowInserted().
type | The type of ResultSet of interest |
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 | ) |
bool odbc::DatabaseMetaData::othersInsertsAreVisible | ( | int | type | ) |
bool odbc::DatabaseMetaData::othersUpdatesAreVisible | ( | int | type | ) |
Returns true if rows updated by others are visible with their new values.
type | The type of ResultSet of interest |
bool odbc::DatabaseMetaData::ownDeletesAreVisible | ( | int | type | ) |
bool odbc::DatabaseMetaData::ownInsertsAreVisible | ( | int | type | ) |
bool odbc::DatabaseMetaData::ownUpdatesAreVisible | ( | int | type | ) |
bool odbc::DatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions | ( | ) |
Checks if the data source supports both DML and DDL in transactions.
true
if the data source supports both data manipulation (eg. UPDATE
, INSERT
) and data definition (eg. CREATE TABLE
) within a transaction.If this method returns true
, supportsDataManipulationTransactionsOnly(), dataDefinitionCausesTransactionCommit() and dataDefinitionIgnoredInTransactions() all return false
.
bool odbc::DatabaseMetaData::supportsDataManipulationTransactionsOnly | ( | ) |
Checks if the data source only supports DML in transactions.
true
if the data source only supports data manipulation (eg. UPDATE
, INSERT
) within a transaction.Attempts to use data definition (eg. CREATE TABLE
) in a transaction will trigger an error.
If this method returns true
, supportsDataDefinitionAndDataManipulationTransactions(), dataDefinitionCausesTransactionCommit() and dataDefinitionIgnoredInTransactions() all return false
.
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.
true
if ("DELETE WHERE CURRENT OF ..."
) is supported bool odbc::DatabaseMetaData::supportsPositionedUpdate | ( | ) |
Checks if the data source supports positioned update.
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.
type | The type to check for. |
concurrency | The concurrency level to check for. |
bool odbc::DatabaseMetaData::supportsResultSetType | ( | int | type | ) |
Returns true if the data source supports the given result set type.
type | The type to check for |
bool odbc::DatabaseMetaData::supportsSelectForUpdate | ( | ) |
Checks if the data source supports.
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.
lev | The isolation level to check for |
bool odbc::DatabaseMetaData::updatesAreDetected | ( | int | type | ) |
Returns true if ResultSet::rowUpdated can determine whether a row has been updated.
type | The type of ResultSet of interest |