THierarchicalSqlDatabase

Translates queries for hierarchical record sets that cannot be processed directly by a traditional SQL database.

Inheritance

LevelAncestorDescription
1TObjectUltimate ancestor in a class hierarchy
2TSqlStatementExecutorAbstract base class for a facility that executes a TSqlStatement
3TSqlDatabase Abstract base class for connections to databases that can be queried using SQL statements.
4TLogicalSqlDatabase Abstract base class for TSqlDatabase implementations that manipulate or translate queries before they sent to an actual physical TSqlDatabase.
5THierarchicalSqlDatabase

Source

Sql.Database.Logical.Hierarchical.pas (78)

Description

A hierarchical SQL database supports hierarchical record sets, that is, record sets in which values need not be scalar but can be records or record sets as well. Currently THierarchicalSqlDatabase detects the use of TStructuredType columns in a limited amount of cases and replaces those columns with expanded columns.

Methods

ScopeVisibilityResultNameDescription
InstanceprotectedExpandExpression(Expression: TSqlExpression)
InstanceprotectedExpandResultSetStatement(Statement: TSqlResultSetStatement)
InstanceprotectedExpandUnion(Union: TSqlUnion)
InstanceprotectedExpandInSubquery(InSubquery: TSqlInSubquery)
InstanceprotectedExpandIfNull(IfNull: TSqlIfNull)
InstanceprotectedExpandExists(Exists: TSqlExists)
InstanceprotectedTList<TSqlTableColumn>ExpandTableColumn(Column: TSqlTableColumn)
InstanceprotectedTBooleanShouldExpandTableExpression(TableExpression: TSqlTableExpression)
InstanceprotectedTBooleanShouldExpandTableExpressions(TableExpressions: TList<TSqlTableExpression>)
InstanceprotectedExpandTableExpression(TableExpression: TSqlTableExpression)
InstanceprotectedExpandTableExpressions(TableExpressions: TList<TSqlTableExpression>)
InstanceprotectedTSqlPhysicalTableCreateSubtable(Table: TSqlTable; Column: TSqlTableColumn)
InstanceprotectedTSqlPhysicalTableGetPhysicalTableForTableExpression(Expression: TSqlTableExpression; ColumnIdentifier: TText)
InstanceprotectedTSqlPhysicalTableGetPhysicalTableForResultSetStatement(ResultSetStatement: TSqlResultSetStatement; ColumnIdentifier: TText)
InstanceprotectedTSqlPhysicalTableGetPhysicalTable(Table: TSqlTable; ColumnIdentifier: TText)
InstanceprotectedExpandSelect(Select: TSqlSelect; RecordSetColumns: TObjectList<TRecordSetColumn>)
InstanceprotectedExpandColumns(Columns: TSqlResultSetColumnList; RecordSetColumns: TObjectList<TRecordSetColumn>)
InstanceprotectedExpandOrderBy(OrderBy: TList<TSqlOrderByExpression>)
InstanceprotectedTSqlResultExecuteExpandedSelect(Select: TSqlSelect; ResultMethod: TSqlQueryResultMethod)
InstanceprotectedTSqlResultHandleSelect(Select: TSqlSelect; ResultMethod: TSqlQueryResultMethod)
InstanceprotectedTSqlInsertValuesCreateRecordSetInsertStatement(Table: TSqlTable; Column: TSqlTableColumn; RowSet: TSqlRowSet)
InstanceprotectedTBooleanShouldExpandInsert(Insert: TSqlInsertStatement)
InstanceprotectedExecuteExpandedInsertValues(InsertValues: TSqlInsertValues)
InstanceprotectedExecuteExpandedInsertSelect(InsertSelect: TSqlInsertSelect)
InstanceprotectedHandleInsert(Insert: TSqlInsertStatement)
InstanceprotectedTBooleanShouldExpandUpdate(Update: TSqlUpdate)
InstanceprotectedExecuteExpandedUpdate(Update: TSqlUpdate)
InstanceprotectedHandleUpdate(Update: TSqlUpdate)
InstanceprotectedTBooleanShouldExpandDelete(Delete: TSqlDelete)
InstanceprotectedExecuteExpandedDelete(Delete: TSqlDelete)
InstanceprotectedHandleDelete(Delete: TSqlDelete)
InstanceprotectedExpandColumnsInCreateTable(CreateTable: TSqlCreateTable)
InstanceprotectedExecuteExpandedCreateTable(CreateTable: TSqlCreateTable)
InstanceprotectedHandleCreateTable(CreateTable: TSqlCreateTable)
InstancepublicTSqlResultQuery(Statement: TSqlStatement; ResultMethod: TSqlQueryResultMethod)