javascript - 如何使用 XS 从 HANA 数据库返回多行?

标签 javascript hana hana-xs

我正在尝试将数据库表中的所有数据检索到 json 对象中,如下所示:

function getTableData()
{
    var vals = {};
    var data = [];
    try {
    var dbCon = $.db.getConnection();

    var query = 'SELECT * FROM SAPPRD.ZUSERDATATAB';
    var pstmt = dbCon.prepareStatement(query);
    var rs = {};
    rs = pstmt.executeQuery();

     while (rs.next()) {
        vals.team = rs.getString(1);
        vals.fname  = rs.getString(3);
        vals.lname = rs.getString(2);
        data.push(vals);
        $.response.status = $.net.http.OK;
     }

 $.response.setBody(JSON.stringify(data));
  //      $.response.contentType = contentType;
  //      $.response.headers.set('Content-Disposition', 'filename=' + filename);
} catch (e) {
    $.response.setBody('errors: ' + e.message);
}
}

查询仅部分有效,因为在数据中我得到行数 x 最后一行内容,如下所示:

[{"team":"I313766","fname":"0","lname":"LEGOWSKI"},  
 {"team":"I313766","fname":"0","lname":"LEGOWSKI"},
  etc. etc.]

如何让它检索所有数据而不是多次检索一行数据?

最佳答案

好的,我找到解决方案了。将声明数组 vals 的单行移动到 while 语句中解决了问题 - 数组 vals 每次都被初始化为空数组,因此允许正确地 .push 每一行,而不是多次将最后一行从数据库表推送到数据中。感谢所有花时间尝试回答的人。

function getTableData()
{

     var data = [];
    try {
        var dbCon = $.db.getConnection();

        var query = 'SELECT * FROM SAPPRD.ZUSERDATATAB';
        var pstmt = dbCon.prepareStatement(query);
        var rs = pstmt.executeQuery();

         while (rs.next()) {
            var vals = {}; // this is the moved line of code...
            vals.team = rs.getString(1);
            vals.fname  = rs.getString(3);
            vals.lname = rs.getString(2);
            data.push(vals);
            $.response.status = $.net.http.OK;
         }

 $.response.setBody(JSON.stringify(data));
  //      $.response.contentType = contentType;
  //      $.response.headers.set('Content-Disposition', 'filename=' + filename);

    } catch (e) {
        $.response.setBody('errors: ' + e.message);
    }
}

上面的解决方案以防万一将来有人需要它。

关于javascript - 如何使用 XS 从 HANA 数据库返回多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31939579/

相关文章:

javascript - 如何使用 jquery 和 javascript 更改 div 的内容?

sql - 正则表达式用单个模式替换多个模式不起作用

java - 过滤掉旧行的重复条目

hana - 如何将 SQL HINT 添加到 Geoserver 层?

javascript - 如何使用sapui5在数据库中创建新表?

SAP Hana Development 中的 OData 与 XSJS

javascript - 可以将外部库导入 xsjs 或 xsjslib 文件吗?

javascript - 使用 setTimeout() 应用样式

javascript - 如何将部分json响应转换为map

javascript - 生成单选按钮 Canvas