All Classes Namespaces Functions Variables Groups Pages
TableMapper::RawSqlStatementOutboundMapper Class Reference

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

Inheritance diagram for TableMapper::RawSqlStatementOutboundMapper:
[legend]

## Public Member Functions

Qore::SQL::AbstractDatasource | getDatasource ()
| builds the obejct based on real SQL statement More...
private | initOptions (reference opts)
| initializes options
private | initStatement ()
| initializes the internal statement object
Public Member Functions 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 hash of lists. More...
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

## Static Public Member Functions

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

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

Qore::SQL::AbstractDatasource TableMapper::RawSqlStatementOutboundMapper::getDatasource | ( |  | ) |

virtual

builds the obejct based on real SQL statement

The source statement is also scanned using Qore::SQL::SQLStatement 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 Mapper Specification Format for detailed documentation for this option

  opts

  an 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"
  returns the AbstractDatasource object associated with this object

Implements TableMapper::AbstractSqlStatementOutboundMapper.