我试图从mssql request.query中删除记录集,就像返回值一样。 遵循https://www.npmjs.com/package/mssql上的代码很容易创建一个控制台输出,但是当我尝试将记录集设置为另一个变量时不起作用。我做错了什么?
var sql = require('mssql');
var config = {
user: 'sa',
password: 'XXXXXX',
server: '192.168.8.25',
database: '3TWIMDB',
}
var resultado='';
sql.connect(config, function(err){
var request = new sql.Request();
request.query('select 1 as VehiCLASS',function(err,recordset){
console.log(recordset[0].VehiCLASS);
resultado = recordset[0].VehiCLASS;
});
sql.close();
});
console.log("rsul: "+resultado);

感谢。
答案 0 :(得分:5)
查询以异步方式运行。 console.log
实际上在resultado = recordset[0].VehiCLASS
完成之前运行,所以它没有设置。
您必须同步依赖于异步操作的任何代码。您必须使用回调来执行此操作:
resultado = recordset[0].VehiCLASS;
console.log("rsul: ", resultado);
您也可以指定自己的回调函数来阻止嵌套:
function queryComplete(err, result) {
// should handle error
console.log("rsul: ", result);
}
resultado = recordset[0].VehiCLASS;
queryComplete(null, resultado);