我正在尝试通过SqlAdapter将JSONStore记录推送到MySql数据库。我得到了以下错误。
过程调用错误。非法争论:元素类型无效
12错误消息:ADAPTER_FAILURE
出现此错误时。我按照文档做了一切。
到目前为止,我所做的是,
我的数据库表结构是这样的,
> emp_id | emp_name | emp_address > -------------------------------
创建一个JSONStore集合,它显示所有记录, 将新记录添加到集合中但是当我将其推送到服务器时发生问题是我的代码
收藏: -
var resultSet = WL.JSONStore.initCollection("resultSet",
{"emp_id":"integer","emp_name":"string","emp_address":"string"},
将记录推送到数据库服务器,
WLJQ('[data-role="button"]#push_selected').bind('click', function () {
WL.Logger.debug('Called button#push_selected');
if (!checkColInit(resultSet)) {return;}
var id=idTag.val();
if(id.length<1)
{
logMessage("You must provide a valid id");
}
else{
var win = function (data) {
logMessage("Successfully Pushed selected Documents : " + data );
idTag.val("");
};
var options = {onSuccess: win, onFailure: genericFailureCallback};
var doc=WL.JSONStore.documentify(parseInt(id),{emp_id:id,emp_name: "James", emp_address:"NY"});
resultSet.pushSelected(doc,options);
}
});
答案 0 :(得分:1)
ADAPTER_FAILURE :调用WL.Client.invokeProcedure
时遇到问题,特别是连接到Worklight服务器适配器时出现问题。
对于push,您需要告知JSONStore集合适配器名称以及添加,替换或删除数据时要调用的过程。如果您正在使用load,则还需要指定过程名称以获取数据,指定要传递适配器的任何参数以及指向对象数组或所需对象的键。存储在JSONStore集合中。
我将详细介绍如何从适配器获取数据到集合,并在我的答案中将数据从集合发送到适配器:IBM Worklight JSON Store with Sync using HTTP Adapater。
我发现您正在使用initCollection,我强烈建议您使用init。我还建议你使用promises(在documentation中阅读它们,我也回答了关于promises和JSONStore here的问题)而不是你现在正在使用的回调(onSuccess
和onFailure
)。
我也discourage you使用jQuery的bind
函数,请尝试使用on function。
我发布了一个答案,其中提供了有关如何调试JSONStore的提示,如果遇到问题,可以阅读here。