Qore TableMapper Module Reference  1.3
TableMapper::RawSqlStatementOutboundMapper Class Reference

provides an outbound data mapper to a raw SQL statement More...

Inheritance diagram for TableMapper::RawSqlStatementOutboundMapper:

Public Member Methods

 constructor (Qore::SQL::AbstractDatasource ds, string sql, *softlist sqlargs, hash mapv, *hash opts)
 builds the obejct based on real SQL statement More...
 
Qore::SQL::AbstractDatasource getDatasource ()
 returns the AbstractDatasource object associated with this object
 
hash< auto > optionKeys ()
 returns a list of valid constructor options for this class (can be overridden in subclasses) More...
 
- Public Member Methods inherited from TableMapper::AbstractSqlStatementOutboundMapper
 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 list of hashes. More...
 
Qore::SQL::SQLStatement getRowIterator ()
 returns a row iterator for the underlying SQL statement for this object More...
 
Qore::SQL::AbstractSQLStatement getStatement ()
 returns a row iterator for the underlying SQL statement for this object More...
 
SqlStatementMapperIterator iterator ()
 Returns an SqlStatementMapperIterator based on the current object. More...
 
hash< auto > 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
 

Static Public Member Methods

static *hash getStaticInputRecord (Qore::SQL::AbstractDatasource ds, string sql, *softlist args, *hash input)
 returns a description of the input record based on Qore::SQL::AbstractSQLStatement::describe()
 

Private Member Methods

 initOptions (reference< hash > opts)
 initializes options
 
 initStatement ()
 initializes the internal statement object
 

Additional Inherited Members

- Public Attributes inherited from TableMapper::AbstractSqlStatementOutboundMapper
const OptionDefaults
 default option values
 
const OptionKeys
 option keys for this object
 

Detailed Description

provides an outbound data mapper to a raw SQL statement

Member Function Documentation

◆ constructor()

TableMapper::RawSqlStatementOutboundMapper::constructor ( Qore::SQL::AbstractDatasource  ds,
string  sql,
*softlist  sqlargs,
hash  mapv,
*hash  opts 
)

builds the obejct based on real SQL statement

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

Parameters
dsQore::SQL::AbstractDatasource instance. Note that this object uses a transaction lock for the current thread.
sqla string with SQL statement. Variables binding is provided by sqlargs
sqlargsoptional list with sql argumets/variables
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
optsan optional hash of options for the mapper; see Mapper Options for a description of valid mapper options plus the following options specific to this object:
  • "select_block": for size of the batch returned from TableMapper::AbstarctSqlStatementOutboundMapper::getData() or AbstarctSqlStatementOutboundMapper::getDataRows()
Example
{.py}
%new-style
%requires TableMapper
Datasource ds("oracle:omq/omq@xbox");
on_success ds.commit();
on_error ds.rollback();
hash MAPV = ("id" : "workflowid", "name" : True);
RawSqlStatementOutboundMapper m(ds, "select * from workflows where workflowid = %v or workflowid = %v", (1,2), MAPV);
printf("%N\n", m.getDataRows());
#list: (2 elements)
# [0]=hash: (2 members)
# id : 1
# name : "ASYNC-TEST"
# [1]=hash: (2 members)
# id : 2
# name : "BUG-476-TEST"

◆ optionKeys()

hash<auto> TableMapper::RawSqlStatementOutboundMapper::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)