mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 14:56:01 +00:00
Oracle driver first data
This commit is contained in:
@@ -15,7 +15,7 @@ pg.types.setTypeParser(1184, 'text', val => val); // timestamp
|
||||
|
||||
function extractOracleColumns(result) {
|
||||
console.log('result', result);
|
||||
console.log('result.name', result[0].name);
|
||||
//console.log('result.name', result[0].name);
|
||||
console.log('result.map', result.map(fld => ({
|
||||
columnName: fld.name.toLowerCase(),
|
||||
})));
|
||||
@@ -112,12 +112,21 @@ const drivers = driverBases.map(driverBase => ({
|
||||
columns: [],
|
||||
};
|
||||
}
|
||||
try {
|
||||
console.log('sql', sql);
|
||||
const res = await client.execute(sql);
|
||||
console.log('res', res);
|
||||
const columns = extractOracleColumns(res.metaData);
|
||||
console.log('columns', columns);
|
||||
return { rows: (res.rows || []).map(row => zipDataRow(row, columns)), columns };
|
||||
}
|
||||
catch(err) {
|
||||
console.log('Error query', err);
|
||||
}
|
||||
finally {
|
||||
console.log('finally', sql);
|
||||
}
|
||||
|
||||
},
|
||||
stream(client, sql, options) {
|
||||
/*
|
||||
@@ -128,12 +137,14 @@ const drivers = driverBases.map(driverBase => ({
|
||||
*/
|
||||
console.log('queryStream', sql);
|
||||
const query = client.queryStream(sql);
|
||||
// const consumeStream = new Promise((resolve, reject) => {
|
||||
let rowcount = 0;
|
||||
let wasHeader = false;
|
||||
|
||||
query.on('metaData', row => {
|
||||
console.log('metaData', row);
|
||||
query.on('metadata', row => {
|
||||
console.log('metadata', row);
|
||||
if (!wasHeader) {
|
||||
columns = extractOracleColumns(query.metaData);
|
||||
columns = extractOracleColumns(row);
|
||||
if (columns && columns.length > 0) {
|
||||
options.recordset(columns);
|
||||
}
|
||||
@@ -145,14 +156,6 @@ const drivers = driverBases.map(driverBase => ({
|
||||
|
||||
query.on('data', row => {
|
||||
console.log('DATA', row);
|
||||
if (!wasHeader) {
|
||||
columns = extractOracleColumns(query._result);
|
||||
if (columns && columns.length > 0) {
|
||||
options.recordset(columns);
|
||||
}
|
||||
wasHeader = true;
|
||||
}
|
||||
|
||||
options.row(zipDataRow(row, columns));
|
||||
});
|
||||
|
||||
@@ -190,7 +193,16 @@ const drivers = driverBases.map(driverBase => ({
|
||||
});
|
||||
options.done();
|
||||
});
|
||||
query.on('close', function() {
|
||||
// console.log("stream 'close' event");
|
||||
// The underlying ResultSet has been closed, so the connection can now
|
||||
// be closed, if desired. Note: do not close connections on 'end'.
|
||||
resolve(rowcount);
|
||||
});
|
||||
//});
|
||||
|
||||
//const numrows = await consumeStream;
|
||||
//console.log('Rows selected: ' + numrows);
|
||||
client.query(query);
|
||||
},
|
||||
async getVersion(client) {
|
||||
@@ -273,7 +285,7 @@ const drivers = driverBases.map(driverBase => ({
|
||||
pass.end();
|
||||
});
|
||||
|
||||
client.query(query);
|
||||
//client.query(query);
|
||||
|
||||
return pass;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user