0

我正在尝试通过 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);
            }
            });
4

1 回答 1

1

ADAPTER_FAILURE:调用问题WL.Client.invokeProcedure,特别是连接到 Worklight 服务器适配器的问题。

对于推送,您需要告诉 JSONStore 集合适配器名称以及添加、替换或删除数据时要调用的过程。如果您使用load,您还需要指定获取数据的过程名称、要传递给适配器的任何参数以及指向对象数组或要存储在 JSONStore 集合中的对象的键。

我更详细地介绍了如何将数据从适配器获取到集合,并将数据从集合发送到适配器在我的回答中:IBM Worklight JSON Store with Sync using HTTP Adapter

我看到您正在使用initCollection,我强烈建议您使用init我还建议您使用 Promise(在文档中了解它们,我还在这里回答了关于 Promise 和 JSONStore 的问题而不是您现在使用的回调(onSuccessonFailure)。

我也劝阻您不要使用 jQuery 的bind函数,请尝试使用on 函数

如果遇到问题,我发布了一个答案,其中包含有关如何调试 JSONStore 的提示,您可以在此处阅读。

于 2013-05-30T20:12:21.680 回答