controller.selectByProdCodeBetech = function (request) { ksys.trclog(this.request.prod_code); var initSql = "select t.* from fms_prod_nav t "; if (this.request.prod_code != "" && this.request.prod_code != null) { initSql = "select * from (" + initSql + ")" + " t where t.prod_code = '" + this.request.prod_code.id + "'"; } ksys.trclog(initSql); var statement = kdb.prepare("select count(1) as total from (" + initSql + ") t "); statement.execute({prod_code: this.request.prod_code.id}); var row = statement.fetchRow(); var total = row.total; var sql = fmsSys.getLimitSql(initSql, this.request.pageNum, this.request.pageLength); var sqlrst = kdb.prepare("" + sql + "order by nav_date"); sqlrst.execute({prod_code: this.request.prod_code.id}); ksys.trclog(sqlrst.getFullStatement()); var arr = []; while (( row = sqlrst.fetchRow() ) != null) { row.nav = row.nav.toFixed(6); row.total_nav = row.total_nav.toFixed(6); ksys.trclog(row); arr.push(row); } ksys.trclog(arr.length); ksys.trclog(arr); kdb.txCommit(); comMq.RetWeb({ retcode: '0000', total: total, rows: arr }) };
时间: 2023-06-20 10:03:34 浏览: 158
这是一段 JavaScript 代码,看起来是一个函数的定义。该函数的名称是 `selectByProdCodeBetech`,它接收一个参数 `request`。函数主要作用是从 `fms_prod_nav` 表中查询数据,并返回结果。
函数的第一行使用了 `ksys.trclog()` 方法输出日志信息,该方法可能是自定义的一个日志记录函数。
接下来的代码首先定义了一个 SQL 语句 `initSql`,用于查询 `fms_prod_nav` 表的所有数据。然后,如果传入的参数 `prod_code` 不为空,则将 SQL 语句修改为根据 `prod_code` 进行筛选的语句。
接下来的代码使用 `kdb.prepare()` 方法准备了两个 SQL 语句,分别用于查询数据总数和实际数据。然后,使用 `statement.execute()` 方法执行查询数据总数的语句,并使用 `statement.fetchRow()` 方法获取查询结果。
接下来的代码使用 `fmsSys.getLimitSql()` 方法生成分页查询的 SQL 语句,并使用 `sqlrst.execute()` 方法执行查询数据的语句。然后,使用 `sqlrst.fetchRow()` 方法获取查询结果,并将每一行的 `nav` 和 `total_nav` 字段保留六位小数,并将结果存入数组 `arr` 中。
最后,代码使用 `comMq.RetWeb()` 方法返回查询结果。
阅读全文