gpt4 book ai didi

javascript - XSJS 获取{key :value} paired result from SQL query

转载 作者:行者123 更新时间:2023-11-30 20:49:51 26 4
gpt4 key购买 nike

我正在使用 SAP HANA Studio 创建一个基本上执行以下操作的 API:

  1. 获取请求 - 带参数
  2. 执行 SQL 查询(SQL 查询是动态生成的)
  3. {key:value} 对格式响应结果。

我试过:

var output = {results: []};
var record = {};
try {
var query = 'SELECT REGION_ID, REGION FROM \"SOME_TABLE\"';
var conn = $.db.getConnection();
var pstmt = conn.prepareStatement(query);

//################### DOUBT ###################
var rs = pstmt.executeQuery();
while (rs.next()) {
record.Key1 = rs.getString(1);
record.Key2 = rs.getString(2);
output.results.push(record);
}
//#############################################

rs.close();
pstmt.close();
conn.close();
}

catch (e) {
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
$.response.setBody(e.message);
}

var body = JSON.stringify(rs);
$.response.contentType = "text/html";
$.response.status = $.net.http.OK;
$.response.setBody(body);

以上代码

DOUBT 部分,我遍历 rs 并将值分配给手动创建的键 key1, key2 , 键-n。 <我不想要这个>

我要

变量 rs 应该像一个带有键值对的 JSON,这样我就可以以一种无需手动创建索引的方式遍历它,相反,这应该来自 DB。

请帮忙。

最佳答案

下面的代码将为您提供 {} 的 [] 形式的结果,其中 {} 代表结果集中的一行。 {} 键是列名,值是实际的字段值。您仍然需要迭代,但不需要对键进行硬编码。使用 getMetaData和相应的class

function select(sql) {
var i, object;
var array = [];
var label;
try {
var runsSQL = $.db.getConnection().prepareStatement(sql);
var dbReturn = runsSQL.executeQuery();
var metaData = dbReturn.getMetaData();
var columnCount = metaData.getColumnCount() + 1;
while (dbReturn.next()) {
object = {};
for (i = 1; i < columnCount; i++) {
label = metaData.getColumnLabel(i);
object[label] = dbReturn.getNString(i);
}
array.push(object);
}
dbReturn.close();
runsSQL.close();
} catch (e) {
return ["error",e];
}
return array;
}
$.response.contentType = "application/json; charset=UTF-8";
$.response.setBody(JSON.stringify(select("SELECT TOP 10 * FROM M_TABLES")));
$.response.status = status;

关于javascript - XSJS 获取{key :value} paired result from SQL query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48296461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com