provides a hash iterator based on a InboundTableMapper object and an iterator input source; for each iteration the iterted row is inserted into the Table target
More...
|
nothing | commit () |
| commits the transaction
|
|
int | commitLimit () |
| returns the commit_limit value set in the constructor()
|
|
| constructor (Qore::AbstractIterator i, InboundTableMapper mapper) |
| creates the iterator from the mapper passed More...
|
|
| constructor (Qore::AbstractIterator i, SqlUtil::Table target, hash mapv, *hash opts, int commit_limit=0) |
| creates the iterator from the arguments passed More...
|
|
| constructor (Qore::AbstractIterator i, SqlUtil::AbstractTable target, hash mapv, *hash opts, int commit_limit=0) |
| creates the iterator from the arguments passed More...
|
|
| constructor (Qore::AbstractIterator i, TableMapper::InboundTableMapper mapv, int commit_limit) |
| creates the iterator from the arguments passed More...
|
|
int | getCount () |
| returns the internal record count More...
|
|
Qore::SQL::AbstractDatasource | getDatasource () |
| returns the AbstractDatasource object associated with this object
|
|
auto | getRuntime (string key) |
| get current runtime option value for a key More...
|
|
string | getTableName () |
| returns the table name
|
|
hash | getValue () |
| returns the current row transformed with the mapper
|
|
bool | next () |
| Moves the current position of the input iterator to the next element; returns False if there are no more elements otherwise inserts the row in the target table and returns True. More...
|
|
| replaceRuntime (*hash runtime) |
| replaces runtime options More...
|
|
| resetCount () |
| resets the internal record count More...
|
|
nothing | rollback () |
| rolls back the transaction
|
|
| setRuntime (string key, auto value) |
| set the runtime option with "key" to value "value" More...
|
|
| setRuntime (hash runtime) |
| adds runtime options to the current runtime option hash More...
|
|
provides a hash iterator based on a InboundTableMapper object and an iterator input source; for each iteration the iterted row is inserted into the Table target
creates the iterator from the mapper passed
- Parameters
-
i | input iterator; AbstractIterator::getValue() must return a hash |
mapper | the mapper object that the iterator will be based on |
- Since
- TableMapper 1.1.1
creates the iterator from the arguments passed
The target table is also scanned using SqlUtil and column definitions are used to update the target record specification, also if there are any columns with NOT NULL constraints and no default value, mapping, or constant value, then a MAP-ERROR exception is thrown
- Example:
2 "id": (
"sequence":
"seq_inventory_example"),
3 "store_code":
"StoreCode",
4 "product_code":
"ProductCode",
5 "product_desc":
"ProductDescription",
7 "available":
"Available",
8 "in_transit":
"InTransit",
9 "status": (
"constant":
"01"),
10 "total": int sub (any x, hash rec) {
return rec.Available.toInt() + rec.Ordered.toInt() + rec.InTransit.toInt(); },
13 InboundTableMapperIterator i(input, table, DbMapper);
- Parameters
-
i | input iterator; AbstractIterator::getValue() must return a hash |
target | the target table object |
mapv | a hash providing field mappings; each hash key is the name of the output column in lower case 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; note that options related to bulk DML are ignored by this object since it works on one row at a time |
commit_limit | row count before a commit is made; if <= 0 then no commits are made by this object, otherwise a commit is made for each commit_limit rows processed by this object, commits are made in calls to next() |
- Note
- by default commit_limit is 0 meaning that this object will make no commits; in this case the transaction will have to be commited explicitly externally
creates the iterator from the arguments passed
The target table is also scanned using SqlUtil and column definitions are used to update the target record specification, also if there are any columns with NOT NULL constraints and no default value, mapping, or constant value, then a MAP-ERROR exception is thrown
- Example:
2 "id": (
"sequence":
"seq_inventory_example"),
3 "store_code":
"StoreCode",
4 "product_code":
"ProductCode",
5 "product_desc":
"ProductDescription",
7 "available":
"Available",
8 "in_transit":
"InTransit",
9 "status": (
"constant":
"01"),
10 "total": int sub (any x, hash rec) {
return rec.Available.toInt() + rec.Ordered.toInt() + rec.InTransit.toInt(); },
13 InboundTableMapperIterator i(input, table, DbMapper);
- Parameters
-
i | input iterator; AbstractIterator::getValue() must return a hash |
target | the target table object |
mapv | a hash providing field mappings; each hash key is the name of the output column in lower case 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; note that options related to bulk DML are ignored by this object since it works on one row at a time |
commit_limit | row count before a commit is made; if <= 0 then no commits are made by this object, otherwise a commit is made for each commit_limit rows processed by this object, commits are made in calls to next() |
- Note
- by default commit_limit is 0 meaning that this object will make no commits; in this case the transaction will have to be commited explicitly externally
creates the iterator from the arguments passed
The target table is also scanned using SqlUtil and column definitions are used to update the target record specification, also if there are any columns with NOT NULL constraints and no default value, mapping, or constant value, then a MAP-ERROR exception is thrown
- Example:
2 "id": (
"sequence":
"seq_inventory_example"),
3 "store_code":
"StoreCode",
4 "product_code":
"ProductCode",
5 "product_desc":
"ProductDescription",
7 "available":
"Available",
8 "in_transit":
"InTransit",
9 "total": int sub (any x, hash rec) {
return rec.Available.toInt() + rec.Ordered.toInt() + rec.InTransit.toInt(); },
12 InboundTableMapper mapper(table, DbMapper);
13 InboundTableMapperIterator i(input, mapper);
- Parameters
-
i | input iterator; AbstractIterator::getValue() must return a hash |
mapv | the mapper to transform the data |
commit_limit | row count before a commit is made; if <= 0 then no commits are made by this object, otherwise a commit is made for each commit_limit rows processed by this object, commits are made in calls to next() |
int TableMapper::InboundTableMapperIterator::getCount |
( |
| ) |
|
auto TableMapper::InboundTableMapperIterator::getRuntime |
( |
string |
key | ) |
|
get current runtime option value for a key
- Parameters
-
key | the runtime option key |
- Returns
- a runtime value if the key exists in the current runtime option hash and is set
- See Also
-
- Since
- TableMapper 1.1.1
bool TableMapper::InboundTableMapperIterator::next |
( |
| ) |
|
Moves the current position of the input iterator to the next element; returns False if there are no more elements otherwise inserts the row in the target table and returns True.
if commit_limit is > 0 then TableMapper::InboundTableMapper::commit() is called for every commit_limit rows according to the internal row count
- Returns
- False if there are no more elements, in this case if there is an uncommitted transaction according to the internal row count, then TableMapper::InboundTableMapper::commit() is called as well
TableMapper::InboundTableMapperIterator::replaceRuntime |
( |
*hash |
runtime | ) |
|
TableMapper::InboundTableMapperIterator::resetCount |
( |
| ) |
|
resets the internal record count
- See Also
- getCount()
TableMapper::InboundTableMapperIterator::setRuntime |
( |
string |
key, |
|
|
auto |
value |
|
) |
| |
set the runtime option with "key" to value "value"
- Parameters
-
key | a string with valid runtime key |
value | anything passed to the current runtime key |
- See Also
-
- Since
- TableMapper 1.1.1
TableMapper::InboundTableMapperIterator::setRuntime |
( |
hash |
runtime | ) |
|
adds runtime options to the current runtime option hash
- Parameters
-
- See Also
-
- Since
- TableMapper 1.1.1