访问

2016-08-25 53 views
0

我调用存储过程的存储过程的返回值“ujo_get_id”通过下面的代码访问

new sql.Request() 
    .input('id', sql.Int, 0) 
    .input('fld', sql.VarChar(10), fld) 
    .execute('ujo_get_id').then(function(recordsets) { 
     console.log(recordsets[0][0]); 
    }.catch(function(err) { 
     // ... execute error checks 
    }); 

控制台的输出显示这个{ ' ': "some value" } 我想要的值存储(一些值)在变量我怎么能这样做,因为键是空的

+0

您能修改存储过程? – jjwilly16

回答

0

我猜存储过程有一个没有别名的选择语句。如果您可以修改存储过程,请添加一个别名,并且它不应该为密钥返回空字符串。

事情是这样的:

SELECT somefield 

应改为这样:

SELECT somefield as someAliasName 

如果您没有访问存储过程,试图抓住关键是这样的:

recordsets[0][0][''] 
0

你试过这个吗?

console.log(recordsets[0][0][" "]) 

或者,也许另一种方式,如果你肯定知道存储过程会给你只有一个结果是对象转换成一个数组,并检查第一个元素:

var raw = recordsets[0][0] 
var result = Object.keys(raw).map(k => raw[k])[0] 
console.log(result)