-1
I am developing a Node application in which I need to do some query’s in mysql, however a simple query of select is not working. follows the code of the passage
function processTag(tagNumber, tagBdId, datesIndex, logdata, deviceId)
{
var dataValues = [];
var runningQuerys = 0;
//faz a query de insert no banco de dados
var sqlCon = mysql.createConnection({
    host: "localhost",
    user: "%myuser%",
    password: "%mypass%"
});
sqlCon.connect(function(err) {
    console.log("connected to mysql");
    if (err) throw err;
    for(var i=0; i<datesIndex.length; i++)
    {
        //aguarda querye ficar pronta
        if(runningQuerys > 0)   {i-=1; continue;}
        //fa procedimentos de adicionar tag ao banco de dados
        if(datesIndex[i+1])
        {   
            date = logdata.substring(datesIndex[i][0], datesIndex[i][1]);
            value = logdata.substring(datesIndex[i][1], datesIndex[i+1][0]);
        }
        else
        {   
            date = logdata.substring(datesIndex[i][0], datesIndex[i][1]);
            value = logdata.substring(datesIndex[i][1], null);
        }
        //formata data
        date = date.replace("2?","");
        //retira ultima parte da data
        date = date.substring(0,date.lastIndexOf("^"));
        date = date.substring(0,date.lastIndexOf("^"));
        //transforma data em datetime
        date = new Date(date);
        //poe a datea em um formato sql
        date = date.getFullYear()+'-'+(date.getMonth() + 1).toString().padStart(2, '0')+'-'+date.getDate().toString().padStart(2, '0')+' '+date.getHours().toString().padStart(2, '0')+':'+date.getMinutes().toString().padStart(2, '0')+':'+date.getSeconds().toString().padStart(2, '0');    
        //formata valor
        patt =  new RegExp("3\\?"+tagNumber+"\\^([\\d+\\.]+)");
        value = value.match(patt);
        var valueQuery = "SELECT null, "+tagBdId+", "+value[1]+", `date`.`id`, 1, '"+deviceId+"' FROM `sync`.`date` WHERE `date`.`date` = '"+date+"';"
        //faz uma query no banc de dados sql  
        runningQuerys += 1;
        console.log('------ fazendo query -> '+i.toString());    
        console.log(valueQuery);    
        console.log(sqlCon.state);
        sqlCon.query(valueQuery, (err, result) => {
            if (err) throw err;   
            console.log(result.sql);
            console.log("----- Query terminada");
            runningQuerys--; 
            dataValues.push(result[0]);
        });
        //faz query por query de insert na falta de opção kkkkkk :'(
        //query += "INSERT INTO `sync`.`tag_value` (`id`, `tag`, `value`, `date`, `project`, `device_imei`) SELECT null, "+tagBdId+", "+value[1]+", `date`.`id`, 1, '"+deviceId+"' FROM `optync`.`date` WHERE `date`.`date` = '"+date+"' ON DUPLICATE KEY UPDATE `tag_value`.`id`=`tag_value`.`id`;";     
    }         
    console.log(dataValues);
/*
    console.log("query size = " +(query.length/1024.00).toString()+ " Kb");
    //faz uma query no banc de dados sql  
    con.query(query, function (err, result) {
        if (err) throw err;                
    });
    console.log("Processando tag > "+tagNumber);
    console.log("Processando Date > "+date);
    */
});
console.log("Result: Tags Values adicionadas ao banco de dados");
}  
using the library
var mysql = require('mysql');
the program gets stuck in the query part
the last answers on the screen are from this section below and is waiting for the query that is not executed
console.log(valueQuery);   
console.log(sqlCon.state);
I still don’t understand what happened. Maybe it is that this query is called in a function within the Results of another query, but finally, I have re-structured all the programming and worked.
I’ll keep it open for now, in case anyone knows what happened in this case
Which error message appears?
– Heitor Scalabrini
no message appears ... the above code waits for the query to finish but it does not deliver errors.. and the connection status is "Connected"
– user7331387
The time you log into the array is prior to entering the results within the array.
– bfavaretto