@sap/xsodata
Version:
Expose data from a HANA database as OData V2 service with help of .xsodata files.
111 lines (101 loc) • 3.32 kB
JavaScript
;
//Include
const dataCollector2 = require('./dataCollector2');
const statementProcessor = require('./statementProcessor');
exports.createTmpTables = function (context, asyncDone) {
context.logger.silly('dataCollectorDelete', 'createTmpTables');
const dbSeg = context.oData.dbSegmentLast;
const stm = dbSeg.sql.stmContainer.createTmpDel;
return statementProcessor.execStmsDirectlyNoResult(context, stm, asyncDone);
};
exports.insertDataToDelTable = function (context, asyncDone) {
context.logger.silly('dataCollectorDelete', 'insertDataToDelTable');
const dbSeg = context.oData.dbSegmentLast;
statementProcessor.execStmsAsPrepared(
context,
[dbSeg.sql.stmContainer.insertTmpDel],
(err, context, resultset) => {
if (err) {
return asyncDone(err, context);
}
return dataCollector2.resultSetCheckRowCountForUpdate(
context,
resultset,
0,
1,
asyncDone
);
}
);
};
exports.deleteTable = function (context, asyncDone) {
context.logger.silly('dataCollectorDelete', 'deleteTable');
const dbSeg = context.oData.dbSegmentLast;
statementProcessor.execStmsAsPreparedNoResult(
context,
dbSeg.sql.stmContainer.delete,
asyncDone
);
};
exports.commit = function (context, asyncDone) {
context.logger.silly('dataCollectorDelete', 'commit');
const client = context.db.client;
client.commit(function (err) {
if (err) {
context.logger.info(
'SQL Exec',
'Commit Error: \n' + JSON.stringify(err)
);
return asyncDone(err, context);
}
return asyncDone(null, context);
});
};
/**
* Executes truncation of temporary created tables
*
* @param {Object} context The xsodata context
* @param {Function} asyncDone async waterfall callback
*/
exports.truncateTempTables = function (context, asyncDone) {
let statements;
context.logger.silly('dataCollectorDelete', 'truncateTempTables');
statements = [context.sql.container.createTmpDelTruncate];
return statementProcessor.execTempTableStatements(
context,
statements,
(err, context) => {
if (err) {
context.logger.silly(
'dataCollectorDelete',
'truncateTempTables rc !=0 but OK'
);
}
return asyncDone(null, context);
}
);
};
/**
* Executes deletion of temporary created tables
*
* @param {Object} context The xsodata context
* @param {Function} asyncDone async waterfall callback
*/
exports.dropTempTables = function (context, asyncDone) {
let statements;
context.logger.silly('dataCollectorDelete', 'dropTempTables');
statements = [context.sql.container.createTmpDelDrop];
return statementProcessor.execTempTableStatements(
context,
statements,
(err, context) => {
if (err) {
context.logger.silly(
'dataCollectorDelete',
'dropTempTables rc !=0 but OK'
);
}
return asyncDone(null, context);
}
);
};