转换列名称为“ item”的dataRow时出现jint错误

时间:2019-02-08 19:04:26

标签: javascript sql-server jint

如果我的描述很笨拙,请忍受,因为我是Jint的新手,并且正要研究它。

问题是在Jint中使用以下代码:

var param = JsValue.FromObject(_jsEngine, row);
var transforms = this._jsEngine.GetValue("transformer");
var result = transforms.Invoke(param);

错误消息为“参数计数不匹配”。

“行”(SQL Server中的数据行)只是简单的整数。

在没有要转换的表包含列名称之一作为“ item”的表之前,这段代码一直很好。

关于Jint在转换键名项目时的解释方式,我肯定缺少一些东西。

此刻,如果不告诉客户更改列名,我想不出什么好办法。

P.S。我发现有一个自定义的转换器function()编写如下:

this._jsEngine.Execute
    (@"
        var transformer =   
        (
            function() {
                            var invocation = 
                            function(row) 
                            {
                                'use strict';
                                var newRow = {}
                                fieldSelectFunctions.forEach(
                                    function(g, index, array) 
                                    {
                                        g(row, newRow);
                                    }
                                );
                                return newRow;
                            };

                            invocation.addSelectFunction = 
                            function(g) 
                            {
                                'use strict';
                                fieldSelectFunctions.push(g);
                            };

                            var fieldSelectFunctions = [];
                            return invocation;
                        }
        )();
    ");

0 个答案:

没有答案