繁体   English   中英

从Node JS中的SQL Server存储过程中读取数据?

[英]Reading data from a sql server stored procedure in Node js?

我试图获取从sql server存储过程返回的数据,然后通过传递列名来获取单个数据。 由于某些原因,传递列名时我变得不确定。 到目前为止,这是我尝试过的,我可能做错了什么?

execute回调的签名存在问题。 它应该是function(result, returnValue) ,结果将是recordSet

var updateMember = function( Country, BankID) {
   new sql.Request()
    .input('Country', sql.VarChar(50), Country)
    .input('BankID', sql.VarChar(50),  BankID)
    .execute('p_GetTransactionsStats').then(function(result, returnValue) {
      console.dir(result); // it should be [{},{}]

      for (var i = 0; i < result.length; i++) {
        console.log("Merchantname :-" + result[i].MERCHANTNAME);
        console.log("Bankname :-" + result[i].BankName);
      }
  }).catch(function(err) {
    console.dir(err);
  });
};

第二解决方案

无需更改promise回调方法,您就可以调整如何从结果中获取价值。

var updateMember = function( Country, BankID) {
   new sql.Request()
    .input('Country', sql.VarChar(50), Country)
    .input('BankID', sql.VarChar(50),  BankID)
    .execute('p_GetTransactionsStats').then(function(result) {
      console.dir(result); // it should be [[{},{}], returnValue:0]
      var records = result[0];

      for (var i = 0; i < records.length; i++) {
        console.log("Merchantname :-" + records[i].MERCHANTNAME);
        console.log("Bankname :-" + records[i].BankName);
      }
  }).catch(function(err) {
    console.dir(err);
  });
};

希望对您有帮助。

您的结果是一个数组或数组,因此您需要按以下方式访问值:

    for (var i = 0; i < result.length; i++) {
        console.log("Merchantname :-" + result[0][i].MERCHANTNAME);
        console.log("Bankname :-" + result[0][i].BankName);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM