TableMapper::RawSqlStatementOutboundMapper Class Reference

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

Inheritance diagram for TableMapper::RawSqlStatementOutboundMapper:
[legend]

## Public Member Functions

| constructor (Qore::SQL::AbstractDatasource ds, string sql, *softlist< auto > sqlargs, hash< auto > mapv, *hash< auto > opts)
| builds the obejct based on real SQL statement More...
Qore::SQL::AbstractDatasource | getDatasource ()
| returns the AbstractDatasource object associated with this object
hash< string, hash< MapperOptionInfo > > | getUserOptions ()
| returns mapper options useful for users
hash< auto > | optionKeys ()
| returns a list of valid constructor options for this class (can be overridden in subclasses) More...
Public Member Functions inherited from TableMapper::AbstractSqlStatementOutboundMapper
| commit ()
| commits the transaction and frees the Qore::SQL::AbstractDatasource transaction thread resource
| constructor (hash< auto > mapv, *hash< auto > opts)
| builds the object based on an optional hash providing field mappings, data constraints, and optionally custom mapping logic More...
*hash< string, auto > | getData ()
| Retrieve mapped data as a hash of lists. More...
*list< auto > | 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...
hash< string, hash< MapperOptionInfo > > | getUserOptions ()
| returns mapper options useful for users
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 Functions

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

## Protected Member Functions

| initOptions (reference< hash< auto >> opts)
| initializes options
| initStatement ()
| initializes the internal statement object
Protected Member Functions inherited from TableMapper::AbstractSqlStatementOutboundMapper
abstract | initOptions (reference< hash > opts)
| re-implement to initialize options

## Protected Attributes

const | OptionKeys = ...
| option keys for this class
const | UserOptions = ...
| user options for this class

## Additional Inherited Members

Public Attributes inherited from TableMapper::AbstractSqlStatementOutboundMapper
const | OptionDefaults = ...
| default option values
const | OptionKeys = ...
| option keys for this class
Static Protected Member Functions inherited from TableMapper::AbstractSqlStatementOutboundMapper
static *hash< string, AbstractDataField > | getInputRecordFromStmt (AbstractSQLStatement stmt, *hash< auto > input)
| returns an input record description from an SQLStatement

## 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< auto > | sqlargs,
|  | hash< auto > | mapv,
|  | *hash< auto > | 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

  ds | Qore::SQL::AbstractDatasource instance. Note that this object uses a transaction lock for the current thread.
  sql | a string with SQL statement. Variables binding is provided by `sqlargs`
  sqlargs | optional list with sql argumets/variables
  mapv | a 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 mapperkeys for detailed documentation for this option

  opts

  an optional hash of options for the mapper; see mapperoptions 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"
  printf
  string printf(string fmt,...)

## 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)