Fala Galera, tenho uma aplicação WEB desenvolvida em NodeJS.
Tenho um SELECT no MySQL que possui variáveis declaradas, no BD o select funciona tudo certinho, na minha aplicação (back-end) o select retorna dados tudo certinho.
O problema é que este SELECT em específico possui declaração de variáveis e está retornando no ArrayList da minha aplicação um tal de bloco “ResultSetHeader” ai não consigo popular meus elementos no front-end ao passar o array num forEach.
Veja como está retornando:

Eu acredito que esta retornando esse blocos “ResultSetHeader” pelo motivo de meu select possuir variáveis, pois todos os outros não tenho este problema, aqui está o inicio do meu select:
A ajuda que eu preciso é:
Como receber o Array ignorando estes blocos “ResultSetHeader” ?
Pois se eu receber do “TextRow” pra baixo que é o que um select simples retorna, funciona perfeitamente, mas é necessário manter as variáveis no select, senão não consigo trazer a informação que preciso:
Posta o código do seu backend onde você popular a lista.
Opa, @staroski segue código:
//Aqui é meu arquivo onde possuo as consultas (select.js)
class DB {
constructor(db) {
this.db = db;
}
async doQuery(queryToDo) {//Aqui é a função que utilizo logo abaixo
let pro = new Promise((resolve, reject) => {
let query = queryToDo;
//Executando a consulta
this.db.query(query, function (err, result) {
//if (err) throw err;
if (err) resolve(err);
resolve(result);
});
})
//Retornando o resultado
return pro.then((val) => {
return val;
})
}
}
async getCurvaAbcMes() {
let query = ""
+ "SET @csum := 0; "//Aqui é meu select coloquei só o começo pq é enorme
+ "SET @ccsum := 0; "
+ "SELECT "
+ "programacao.mes, "
.
.
.
return this.doQuery(query)
}
};
module.exports = DB;
Aqui é o arquivo DAO da minha rota onde eu pego o resultado da consulta, passo para uma variável na rota que é depois utilizada no front end para popular os campos:
Rota indicadores.js
//Importando arquivo site-model.js que possui a classe com as funções de consulta
const DB = require('../listas/selects');//Aqui importo o arquivo que contem o select
const FUNCOES = require('../util/funcoes');
const mysql = require('mysql2');
const config = require('../../database/config');
const conn = mysql.createPool(config);
module.exports = {
pageKPIGestaoEstoque: (req, res) => {
let DBModel = new DB(conn);
(async function () {
let curvaAbc_mes = await DBModel.getCurvaAbcMes();//Aqui executo a consulta
console.log('curvaAbc_mes: ', curvaAbc_mes[2].mes);//Aqui onde exibo o resultado postado no fórum
res.render('./pageAdmin', {
DTCurvaAbcMes: curvaAbc_mes,//Aqui passo o array para a página
.
.
.
})();//async
},
};
Você falou em ArrayList e JTable mas o código que postou é Javascript e não Java.
Aplicação WEB em Node.JS, Javascript, MySQL.
Nunca usei essa biblioteca do mysql2 então não sei o padrão de retorno das chamadas dela, mas se o que você precisa está na terceira posição do Array não seria só retornar essa informação? Seguindo seu exemplo:
res.render('./pageAdmin', {
DTCurvaAbcMes: curvaAbc_mes[2], // <-- Retorne apenas a terceira posição do Array onde contem as informações que precisa
Infelizmente não consegui solução, tive que refazer e adaptar todos as minhas querys para contornar este problema.
Vou deixar o tópico aberto, se aparecer alguma resposta será bem vinda, pois uma hora ou outra terei que usar select com variável.