table grid display, SQL for browse table is generated on FE

This commit is contained in:
Jan Prochazka
2020-03-05 09:40:05 +01:00
parent bbc969fa71
commit aad9512951
14 changed files with 152 additions and 39 deletions

View File

@@ -66,4 +66,12 @@ module.exports = {
tables: _.sortBy(tables, x => `${x.schemaName}.${x.pureName}`),
}; // .map(fp.pick(['tableName', 'schemaName']));
},
queryData_meta: 'post',
async queryData({ conid, database, sql }) {
console.log(`Processing query, conid=${conid}, database=${database}, sql=${sql}`);
const opened = await this.ensureOpened(conid, database);
const res = await this.sendRequest(opened, { msgtype: 'queryData', sql });
return res;
},
};

View File

@@ -2,12 +2,12 @@ const _ = require('lodash');
const databaseConnections = require('./databaseConnections');
module.exports = {
tableData_meta: 'get',
async tableData({ conid, database, schemaName, pureName }) {
const opened = await databaseConnections.ensureOpened(conid, database);
const res = await databaseConnections.sendRequest(opened, { msgtype: 'tableData', schemaName, pureName });
return res;
},
// tableData_meta: 'get',
// async tableData({ conid, database, schemaName, pureName }) {
// const opened = await databaseConnections.ensureOpened(conid, database);
// const res = await databaseConnections.sendRequest(opened, { msgtype: 'tableData', schemaName, pureName });
// return res;
// },
tableInfo_meta: 'get',
async tableInfo({ conid, database, schemaName, pureName }) {

View File

@@ -32,24 +32,23 @@ function waitConnected() {
});
}
async function handleTableData({ msgid, schemaName, pureName }) {
async function handleQueryData({ msgid, sql }) {
// const select = new Select();
// if (driver.dialect.limitSelect) select.topRecords = 100;
// if (driver.dialect.rangeSelect) select.range = { offset: 0, limit: 100 };
// select.from = { schemaName, pureName };
// select.selectAll = true;
// const sql = select.toSql(driver);
await waitConnected();
const driver = engines(storedConnection);
const select = new Select();
if (driver.dialect.limitSelect) select.topRecords = 100;
if (driver.dialect.rangeSelect) select.range = { offset: 0, limit: 100 };
select.from = { schemaName, pureName };
select.selectAll = true;
const sql = select.toSql(driver);
const res = await driver.query(systemConnection, sql);
process.send({ msgtype: 'response', msgid, ...res });
}
const messageHandlers = {
connect: handleConnect,
tableData: handleTableData,
queryData: handleQueryData,
};
async function handleMessage({ msgtype, ...other }) {