tediousjs/tedious-connection-pool

response.write on Tedious connection pool

catoszyrko opened this issue · 5 comments

Hello Pekin,
Can you help me about print results on site,

I could print on console.log but not on website.

var ConnectionPool = require('tedious-connection-pool');
var Request = require('tedious').Request;

// LEVANTA ID 
var id = req.params.id;
res.contentType('application/json');

        var connectionConfig = {
                "userName": "user",
                "password": "pass",
                "server": "localhost",
                "options": {
                    "database": "mydb"
                }
            };
        var poolConfig = { max: 10, min: 2, idelTimeOutMills:30000 };
        var pool = new ConnectionPool(poolConfig, connectionConfig);
        pool.requestConnection(function (err, connection) {
          if(!err) {
            var sSiglaEmpresa = id;

            var SQL=String("SELECT * FROM Empresa WHERE Codigo_Empresa = '"+ sSiglaEmpresa +"' ");
            var request = new Request(SQL, function(err, rowCount) {
             // connection.close();
            });
            request.on('row', function(columns) {
                var columna = columns[1].value;



                console.log(columna);
            });
            connection.on('connect', function(err) {
                connection.execSql(request);
            });
         }else{
            console.log("Error al acceder a la base de datos.");
         }
    });
        res.write(JSON.stringify("Hello" +  id ));

I'm guessing what you want to do, but perhaps something like this.

            ...
            var request = new Request(SQL, function(err, rowCount) {
             // connection.close();
            });
            request.on('row', function(columns) {
                var columna = columns[1].value;

                res.write(columna);
            });
            connection.on('connect', function(err) {
                connection.execSql(request);
            });
            ...

Or maybe, if you want to wait until you have all of the rows, this.

            ...
            var columnValues = [];
            var request = new Request(SQL, function(err, rowCount) {
                res.write(JSON.stringify(columnValues));

             // connection.close();
            });
            request.on('row', function(columns) {
                columnValues.push(columns[1].value);
            });
            connection.on('connect', function(err) {
                connection.execSql(request);
            });
            ...

Hey thank you!
I still have problems --> Object has no method 'write'

var ConnectionPool = require('tedious-connection-pool');
var Request = require('tedious').Request;


exports.getNombre = function(req,res){
    res.contentType('application/json');            
    console.log(req.params.id);
        var connectionConfig = {
                "userName": "user",
                "password": "pass",
                "server": "localhost",
                "options": {
                    "database": "mydb"
                }
            };
        var poolConfig = { max: 10, min: 2, idelTimeOutMills:30000 };
        var pool = new ConnectionPool(poolConfig, connectionConfig);
        pool.requestConnection(function (err, connection) {
            var sSiglaEmpresa = req.params.id;
            console.log(sSiglaEmpresa);
            if(!err) {
                var SQL=String("SELECT * FROM Empresa WHERE Codigo_Empresa = '"+sSiglaEmpresa+"'");

                var columnValues = [];
                var request = new Request(SQL, function(err, rowCount) {
                res.write(JSON.stringify(columnValues));

                    // connection.close();
                    });
                request.on('row', function(columns) {
                    columnValues.push(columns[1].value);
                });
                connection.on('connect', function(err) {
                    connection.execSql(request);
                });
             }else{
                console.log("Error al hacer la busqueda.");
             }
        });
    res.write(JSON.stringify("Hola"));
    res.end();  
}

maybe i need another require?

? somebody?

I'm not sure. The only object that you're calling write on is res, which looks like it should be in scope.

The problem isn't specific to tedious-connection-pool, but is a more general javascript problem.