Qore TableMapper Module Reference  1.3
All Classes Namespaces Functions Variables Modules Pages
RawSqlStatementOutboundMapper Class Reference

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

Inherits AbstractSqlStatementOutboundMapper.

Public Member Methods

 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 Methods

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

Private Member Methods

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

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