RawSqlStatementOutboundMapper Class Reference

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

Inherits AbstractSqlStatementOutboundMapper.

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

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

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

## Detailed Description

provides an outbound data mapper to a raw SQL statement

## Member Function Documentation

## constructor()

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"

## optionKeys()

hash<auto> 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)

printf
string printf(string fmt,...)