Describes database statement and handles query execution.
In Databases article you may find complete information with examples about working with databases.
You can find more information in comments below. Overrided methods can be found in corresponding base interface.
class IDbStatement: public virtual IReleasable
{
protected:
struct RetrieveColumnInformation // Set of flags indicating whether column attributes should be retrieved for query result. By default all of them is set to false
{
bool AutoIncrementing;
bool Name;
bool BaseTableName;
bool CaseSensitive;
bool CatalogName;
bool ConciseType;
bool MaximumDisplayLength;
bool FixedPrecisionScale;
bool Label;
bool MaximumLength;
bool LiteralPrefix;
bool LiteralSuffix;
bool LocalTypeName;
bool Alias;
bool Nullability;
bool PrecisionRadix;
bool Precision;
bool Scale;
bool SchemaName;
bool Searchable;
bool TableName;
bool DataTypeName;
bool Unnamed;
bool Updatable;
};
public:
PlatformHandle const &Handle; // Platform-dependent statement handle
IDbConnection* const &Connection; // Parent connection
String const &PreparedQuery; // Prepared query this statement works with or empty string
bool const &RetrieveColumnAutoIncrementing; // Whether auto-incrementing information should be retrieved for column information query result. False by default
bool const &RetrieveColumnName; // Whether name should be retrieved for column information query result. False by default
bool const &RetrieveColumnBaseTableName; // Whether base table name should be retrieved for column information query result. False by default
bool const &RetrieveColumnCaseSensitive; // Whether case sensitivity information should be retrieved for column information query result. False by default
bool const &RetrieveColumnCatalogName; // Whether catalog name should be retrieved for column information query result. False by default
bool const &RetrieveColumnConciseType; // Whether concise type should be retrieved for column information query result. False by default
bool const &RetrieveColumnMaximumDisplayLength; // Whether maximum display length should be retrieved for column information query result. False by default
bool const &RetrieveColumnFixedPrecisionScale; // Whether fixed precision scale should be retrieved for column information query result. False by default
bool const &RetrieveColumnLabel; // Whether label should be retrieved for column information query result. False by default
bool const &RetrieveColumnMaximumLength; // Whether maximum length should be retrieved for column information query result. False by default
bool const &RetrieveColumnLiteralPrefix; // Whether literal prefix should be retrieved for column information query result. False by default
bool const &RetrieveColumnLiteralSuffix; // Whether literal suffix should be retrieved for column information query result. False by default
bool const &RetrieveColumnLocalTypeName; // Whether local type name should be retrieved for column information query result. False by default
bool const &RetrieveColumnAlias; // Whether alias should be retrieved for column information query result. False by default
bool const &RetrieveColumnNullability; // Whether nullability information should be retrieved for column information query result. False by default
bool const &RetrieveColumnPrecisionRadix; // Whether precision radix should be retrieved for column information query result. False by default
bool const &RetrieveColumnPrecision; // Whether precision should be retrieved for column information query result. False by default
bool const &RetrieveColumnScale; // Whether scale should be retrieved for column information query result. False by default
bool const &RetrieveColumnSchemaName; // Whether schema name should be retrieved for column information query result. False by default
bool const &RetrieveColumnSearchable; // Whether searchability should be retrieved for column information query result. False by default
bool const &RetrieveColumnTableName; // Whether table name should be retrieved for column information query result. False by default
bool const &RetrieveColumnDataTypeName; // Whether data type name should be retrieved for column information query result. False by default
bool const &RetrieveColumnUnnamed; // Whether unnamed indicator should be retrieved for column information query result. False by default
bool const &RetrieveColumnUpdatable; // Whether updatable indicator should be retrieved for column information query result. False by default
IErrorListener* const &ErrorListener; // Error listener
// Return options
virtual bool isAsyncEnabled(bool *succeeded = nullptr) = 0;
virtual DbCursorConcurrency getCursorConcurrency(bool *succeeded = nullptr) = 0;
virtual bool isCursorScrollable(bool *succeeded = nullptr) = 0;
virtual DbCursorSensitivity getCursorSensitivity(bool *succeeded = nullptr) = 0;
virtual DbCursorType getCursorType(bool *succeeded = nullptr) = 0;
virtual bool isAutoIPDEnabled(bool *succeeded = nullptr) = 0;
virtual bool isStringArgumentsOfCatalogFunctionsTreatedAsIdentifiers(bool *succeeded = nullptr) = 0;
virtual bool isScanEscapeSequences(bool *succeeded = nullptr) = 0;
virtual int getQueryTimeout(bool *succeeded = nullptr) = 0;
virtual bool isBookmarksEnabled(bool *succeeded = nullptr) = 0;
virtual void setErrorListener(IErrorListener *value) = 0; // Assign new error listener. nullptr value if also accepted
virtual bool setRetrieveColumnAutoIncrementing(const bool value) = 0; // Set whether auto-incrementing information should be retrieved for column information query result
virtual bool setRetrieveColumnName(const bool value) = 0; // Set whether name should be retrieved for column information query result
virtual bool setRetrieveColumnBaseTableName(const bool value) = 0; // Set whether base table name should be retrieved for column information query result
virtual bool setRetrieveColumnCaseSensitive(const bool value) = 0; // Set whether case sensitivity information should be retrieved for column information query result
virtual bool setRetrieveColumnCatalogName(const bool value) = 0; // Set whether catalog name should be retrieved for column information query result
virtual bool setRetrieveColumnConciseType(const bool value) = 0; // Set whether concise type should be retrieved for column information query result
virtual bool setRetrieveColumnMaximumDisplayLength(const bool value) = 0; // Set whether maximum display length should be retrieved for column information query result
virtual bool setRetrieveColumnFixedPrecisionScale(const bool value) = 0; // Set whether fixed precision scale should be retrieved for column information query result
virtual bool setRetrieveColumnLabel(const bool value) = 0; // Set whether label should be retrieved for column information query result
virtual bool setRetrieveColumnMaximumLength(const bool value) = 0; // Set whether maximum length should be retrieved for column information query result
virtual bool setRetrieveColumnLiteralPrefix(const bool value) = 0; // Set whether literal prefix should be retrieved for column information query result
virtual bool setRetrieveColumnLiteralSuffix(const bool value) = 0; // Set whether literal suffix should be retrieved for column information query result
virtual bool setRetrieveColumnLocalTypeName(const bool value) = 0; // Set whether local type name should be retrieved for column information query result
virtual bool setRetrieveColumnAlias(const bool value) = 0; // Set whether alias should be retrieved for column information query result
virtual bool setRetrieveColumnNullability(const bool value) = 0; // Set whether nullability information should be retrieved for column information query result
virtual bool setRetrieveColumnPrecisionRadix(const bool value) = 0; // Set whether precision radix should be retrieved for column information query result
virtual bool setRetrieveColumnPrecision(const bool value) = 0; // Set whether precision should be retrieved for column information query result
virtual bool setRetrieveColumnScale(const bool value) = 0; // Set whether scale should be retrieved for column information query result
virtual bool setRetrieveColumnSchemaName(const bool value) = 0; // Set whether schema name should be retrieved for column information query result
virtual bool setRetrieveColumnSearchable(const bool value) = 0; // Set whether searchability should be retrieved for column information query result
virtual bool setRetrieveColumnTableName(const bool value) = 0; // Set whether table name should be retrieved for column information query result
virtual bool setRetrieveColumnDataTypeName(const bool value) = 0; // Set whether data type name should be retrieved for column information query result
virtual bool setRetrieveColumnUnnamed(const bool value) = 0; // Set whether unnamed indicator should be retrieved for column information query result
virtual bool setRetrieveColumnUpdatable(const bool value) = 0; // Set whether updatable indicator should be retrieved for column information query result
virtual bool setRetrieveColumnAllAttributes(const bool value) = 0; // Set whether all column attributes should be retrieved for query result
// Set options
virtual bool setAsyncEnabled(const bool value) = 0;
virtual bool setCursorConcurrency(const DbCursorConcurrency value) = 0;
virtual bool setCursorScrollable(const bool value) = 0;
virtual bool setCursorSensitivity(const DbCursorSensitivity value) = 0;
virtual bool setCursorType(const DbCursorType value) = 0;
virtual bool setAutoIPDEnabled(const bool value) = 0;
virtual bool setStringArgumentsOfCatalogFunctionsTreatedAsIdentifiers(const bool value) = 0;
virtual bool setScanEscapeSequences(const bool value) = 0;
virtual bool setQueryTimeout(const int value) = 0;
virtual bool setBookmarksEnabled(const bool value) = 0;
virtual bool RegisterReleaseListener(IReleasableListener *listener) = 0; // Add release listener used to detect final release of the statement
virtual bool UnregisterReleaseListener(IReleasableListener *listener) = 0; // Remove release listener from list
virtual bool Prepare(const String &query) = 0; // Prepare specified query
virtual DbResult Execute() = 0; // Execute prepared query
virtual DbResult Execute(const DbRow &row, const bool validate = false) = 0; // Execute prepared query with one row of arguments
virtual DbResult Execute(const DbRows &rows, const bool validate = false) = 0; // Execute prepared query with multiple rows
virtual DbResult Execute(const String &query) = 0; // Execute query directly
virtual DbResult Execute(const String &query, const DbRow &row, const bool validate = false) = 0; // Execute query directly with one row of arguments
virtual DbResult Execute(const String &query, const DbRows &rows, const bool validate = false) = 0; // Execute query directly with multiple rows
// Query objects. There can be search patterns("_" - single character, "%" - any sequence of zero or more characters) in "catalog", "table", "procedure", "schema" and "column" arguments
virtual DbResult QueryAllCatalogs() = 0; // Query all catalogs/databases
virtual DbResult QueryAllTableTypes() = 0; // Query all supported table types
virtual DbResult QueryAllSchemes() = 0; // Query all data source schemes
virtual DbResult QueryTables(const String &catalog, const String &table, const String &schema, const StringArray &types) = 0; // Query catalog/database table list of specified types with filtering
virtual DbResult QueryTablePrivileges(const String &catalog, const String &table, const String &schema) = 0; // Query table privileges
virtual DbResult QueryColumns(const String &catalog, const String &table, const String &schema, const String &column) = 0; // Query columns
virtual DbResult QueryColumnPrivileges(const String &catalog, const String &table, const String &schema, const String &column) = 0; // Query column privileges
virtual DbResult QuerySpecialColumns(const String &catalog, const String &table, const String &schema, const bool autoupdated, const DbSpecialColumnScope scope, const bool nullable) = 0; // Query special columns
virtual DbResult QueryProcedureColumns(const String &catalog, const String &procedure, const String &schema, const String &column) = 0; // Query procedure columns
virtual DbResult QueryForeignKeys(const String &pk_catalog, const String &pk_table, const String &pk_schema, const String &fk_catalog, const String &fk_table, const String &fk_schema) = 0; // Query foreign key list
virtual DbResult QueryPrimaryKeys(const String &catalog, const String &table, const String &schema) = 0; // Query primary key list
virtual DbResult QueryProcedures(const String &catalog, const String &procedure, const String &schema) = 0; // Query procedure list
virtual DbResult QueryStatistic(const String &catalog, const String &table, const String &schema, const bool unique_indexes_only, const bool quick_return) = 0; // Query table statistic
};
Namespace: | nitisa |
Include: | Nitisa/Interfaces/IDbStatement.h |