我有一个通过适配器链接到远程sql数据库的本地jsonstore。我试图将本地数据推送到远程数据库,如下所示:
submit_data = function () {
accessor.getPushRequired().then(function (result) { alert(result.length);
accessor.push();
});
我们说我只添加了文件(没有替换/删除)。 我希望我的添加过程看起来像这样:
function addGegegr(document) {
//WL.Logger.warn(document[56]);
return WL.Server.invokeSQLStoredProcedure({
procedure : "DBO.USP_TIM_add_sp",
parameters : [document.key1,document.key2,document.key3,...]
});
}
对于替换/删除过程,它们应该使用相同的参数调用其他存储过程。
然而,我收到错误,因为它似乎是变量" document"在调用push之后,worklight传递给add函数只是一个字符串而不是一个json对象。
所以我的问题是:如何从适配器程序访问json属性?如果不可能,我可以将这些属性传递给推送功能吗?
P.S。:将每个n个文件作为push()的参数添加不起作用,导致add被称为n * n次而不是n ...
答案 0 :(得分:0)
尝试使用JSON.parse将字符串转换为JavaScript对象。
function addGegegr(document) {
var doc = JSON.parse(document);
//... use doc as a regular JavaScript object
}
如果JSON.parse
在那里不可用,您可以通过在适配器实现文件中包含this code来添加它。