Sql 如何在mobilefirst 7.1中使用适配器更新数据库

Sql 如何在mobilefirst 7.1中使用适配器更新数据库,sql,ibm-mobilefirst,mobilefirst-adapters,Sql,Ibm Mobilefirst,Mobilefirst Adapters,我能够成功地创建用于在sql中创建和插入的适配器,但我怀疑下面的更新是我的代码,我想根据wrkname更新某个字段值,并且我遇到了输入或输出错误 var updateStatement = WL.Server.createSQLStatement("UPDATE office1 SET wrkid=?, wrkname=?, empref=? WHERE wrkname=?"); function updateoffice(wrkid,wrkname,empref,wrkname) {

我能够成功地创建用于在sql中创建和插入的适配器,但我怀疑下面的更新是我的代码,我想根据wrkname更新某个字段值,并且我遇到了输入或输出错误

var updateStatement = WL.Server.createSQLStatement("UPDATE office1 SET wrkid=?, wrkname=?, empref=? WHERE wrkname=?");

function updateoffice(wrkid,wrkname,empref,wrkname) {

    return WL.Server.invokeSQLStatement({
        preparedStatement : updateStatement,
        parameters : [wrkid,wrkname,empref,wrkname]
    });
}

您是否缺少第四个参数wrkname(您使用了两次…)

例如,这对我很有效:

var update = WL.Server.createSQLStatement("UPDATE users SET stdid=? WHERE userId=?");
function updatevaluesprocedure(stdId,userId) {
    return WL.Server.invokeSQLStatement({
        preparedStatement : update,
       parameters : [stdId,userId]
    });
}
预期两个参数,收到两个参数


在您的情况下,需要四个参数…

错误是什么?提供完整的错误消息。“运行时:在索引::4处缺少IN或OUT参数。\n执行的查询:\nUPDATE office1 SET wrkid=?,wrkname=?,empref=?WHERE wrkname=?“谢谢您,我已经更新了,并且在第1行第42列收到了新的错误“IO:在第1行上期望','或']”。但是我的程序逻辑是我有3列(wrkid,wrkname,empref)和数据行(“1”、“fxxx”fx@yahoo.co)并基于wrkname=“fxxx”我需要更改整行。这可能吗。如果我说有任何解决方案,您不需要发送两次!!updateoffice(wrkid、wrkname、empref、wrkname)-删除最后一个wrkname,因为它与第一个wrkname相同。但是where子句值???如果我不提的话,它会替换所有的行,对吗???哥们。我只是说从函数签名中删除它。我不是说要从参数列表或SQL查询中删除它。