Qore TableMapper Module Reference  1.1
TableMapper::AbstractSqlStatementOutboundMapper Class Referenceabstract

provides an abstract base for all SQL based outbound mappers More...

Inheritance diagram for TableMapper::AbstractSqlStatementOutboundMapper:

Public Member Functions

 commit ()
 commits the transaction and frees the Qore::SQL::AbstractDatasource transaction thread resource
 
 constructor (hash mapv, *hash opts)
 builds the object based on an optional hash providing field mappings, data constraints, and optionally custom mapping logic More...
 
*hash getData ()
 Retrieve mapped data as a hash of lists. More...
 
*list getDataRows ()
 Retrieve mapped data as a hash of lists. More...
 
abstract Qore::SQL::AbstractDatasource getDatasource ()
 returns the AbstractDatasource object associated with this object
 
abstract private initOptions (reference opts)
 re-implement to initialize options
 
abstract private initStatement ()
 re-implement to initialize Qore::SQL::SQLStatement on demand
 
SqlStatementMapperIterator iterator ()
 Returns an SqlStatementMapperIterator based on the current object. More...
 
hash optionKeys ()
 returns a list of valid constructor options for this class (can be overridden in subclasses) More...
 
 rollback ()
 rolls the transaction back and frees the Qore::SQL::AbstractDatasource transaction thread resource
 

Public Attributes

const OptionDefaults
 default option values
 
const OptionKeys
 option keys for this object
 

Detailed Description

provides an abstract base for all SQL based outbound mappers

Member Function Documentation

TableMapper::AbstractSqlStatementOutboundMapper::constructor ( hash  mapv,
*hash  opts 
)

builds the object based on an optional hash providing field mappings, data constraints, and optionally custom mapping logic

The source statement is also scanned using Qore::SQL::SQLStatement and column definitions are used to update the source record specification.

Parameters
mapva optional hash providing overrides for the default 1:1 input to output field mappings; each hash key is the name in lower case of the output column in the target table; each value is either True (meaning no translations are done; the data is copied 1:1) or a hash describing the mapping; see Mapper Specification Format for detailed documentation for this option
optsa hash of options for the mapper; see Mapper Options for a description of valid mapper options plus the following options specific to this object:
Exceptions
MAP-ERRORinvalid select_block size; must be >= 1 if present
*hash TableMapper::AbstractSqlStatementOutboundMapper::getData ( )

Retrieve mapped data as a hash of lists.

Returns
*hash with data or Qore::NOTHING in case there are no more data available.

The size of the batch is driven by the select_block option passed in the constructor.

The hash is in Qore::SQL::AbstractDatasource::select() form - meaning it is a hash with column names as keys. Values are lists of column values. This data structure is used for Qore::context statement or BulksSqlUtil operations.

*list TableMapper::AbstractSqlStatementOutboundMapper::getDataRows ( )

Retrieve mapped data as a hash of lists.

Returns
*list with data or Qore::NOTHING in case there are no more data available.

Size of the batch is driven by select_block option passed in constructor.

List is in Qore::SQL::AbstractDatasource::selectRows() form - meaning it is a list with hashes, where every hashs has column names as keys with single values as hash values.

SqlStatementMapperIterator TableMapper::AbstractSqlStatementOutboundMapper::iterator ( )

Returns an SqlStatementMapperIterator based on the current object.

Returns
an SqlStatementMapperIterator based on the current object

Data are retrieved with standard Qore::AbstractIterator::getValue() or similar. Value is a hash with column names as keys.

hash TableMapper::AbstractSqlStatementOutboundMapper::optionKeys ( )

returns a list of valid constructor options for this class (can be overridden in subclasses)

Returns
a list of valid constructor options for this class (can be overridden in subclasses)