UNPKG

censql

Version:

A NodeJS command line client for SAP HANA

37 lines (29 loc) 1.68 kB
var StudioDbHandler = function(hdb, commandHandler) { this.hdb = hdb; this.commandHandler = commandHandler; } StudioDbHandler.prototype.init = function(callback) { this.hdb.cloneConnection("conn", "studioConn", callback); } StudioDbHandler.prototype.getSchemas = function(callback){ this.hdb.exec("studioConn", "SELECT * FROM SYS.SCHEMAS ORDER BY SCHEMA_NAME DESC", callback); } StudioDbHandler.prototype.getTables = function(schema, callback){ // this.hdb.exec("studioConn", "SELECT * FROM SYS.M_TABLES WHERE SCHEMA_NAME = 'SYS' ORDER BY TABLE_NAME", callback); this.hdb.exec("studioConn", "SELECT TABLE_NAME AS NAME FROM SYS.M_TABLES WHERE SCHEMA_NAME = '" + schema + "' ORDER BY NAME", callback); } StudioDbHandler.prototype.getViews = function(schema, callback){ this.hdb.exec("studioConn", "SELECT VIEW_NAME AS NAME FROM SYS.VIEWS WHERE SCHEMA_NAME = '" + schema + "' ORDER BY NAME", callback); } StudioDbHandler.prototype.loadStructure = function(schema, table, callback){ this.hdb.exec("studioConn", "SELECT COLUMN_NAME FROM (SELECT SCHEMA_NAME, VIEW_NAME AS NAME, COLUMN_NAME AS COLUMN_NAME FROM SYS.VIEW_COLUMNS UNION ALL SELECT SCHEMA_NAME, TABLE_NAME AS NAME, COLUMN_NAME FROM SYS.TABLE_COLUMNS) WHERE SCHEMA_NAME = '" + schema + "' AND NAME = '" + table + "'", callback) } StudioDbHandler.prototype.selectAllLimit = function(schema, table, limit, callback){ this.hdb.exec("studioConn", 'SELECT * FROM "' + schema + '"."' + table + '" LIMIT ' + limit, callback); } StudioDbHandler.prototype.exec = function(query, callback){ this.commandHandler.handleCommand(query, function(err, output){ callback(err, output); }) } module.exports = StudioDbHandler;