Как получить несколько наборов результатов, используя пакет msnodesqlv8 - PullRequest
0 голосов
/ 07 января 2020

Я пишу API с использованием node js и express, который возвращает результаты из одной строки запроса sql, содержащей несколько операторов выбора внутри. Как показано в примере ниже, код отлично работает в этом конкретном сценарии. Обратите внимание, что в запросе есть несколько операторов выбора, и есть переменная counter, в которой есть жестко запрограммированный номер, указывающий количество ожидаемых операторов. Проблема в том, что мне нужно заранее знать, сколько вызовов будет присутствовать в строковом запросе. Я хотел бы изменить приведенный ниже код, чтобы автоматически определять количество результирующих наборов и динамически обрабатывать что-то вроде сбора обещаний, все и затем механизм.

Как правильно использовать msnodesqlv8 для выполнения запросов со многими операторами и получения нескольких наборов данных внутри sql .query метода?

var express = require('express');
var app = express();

app.get('/', function (req, res) {
    const sql = require("msnodesqlv8");

    const connectionString = "server=.;Database=Master;Trusted_Connection=Yes;Driver={SQL Server Native Client 11.0}";
    const query = "SELECT name FROM sys.databases where name like 'test%'; \
                    SELECT name FROM sys.databases where name like 'vnext%'";
    let result = [];
    let calls = 0;
    let counter = 2;
    sql.query(connectionString, query, (err, rows) => {
        console.log(rows);
        result = result.concat(rows);
        console.log(++calls);
        if(calls === counter)
        {
            res.send(result);
        }
    });

});

var server = app.listen(5000, function () {
    console.log('Server is running..');
}); 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...