Ibm mobilefirst IBM MobileFirst中的SQL适配器调用失败

Ibm mobilefirst IBM MobileFirst中的SQL适配器调用失败,ibm-mobilefirst,mobilefirst-adapters,Ibm Mobilefirst,Mobilefirst Adapters,我试图在IBM mobilefirst平台中使用SQL适配器将数据插入数据库,但是我的代码达到了失败函数 main.js: function insertData(){ alert("Function InsertData called"); var fname = document.forms["form1"]["fname"].value.toString(); var lname = document.forms["form1"]["lname"].value.toStrin

我试图在IBM mobilefirst平台中使用SQL适配器将数据插入数据库,但是我的代码达到了失败函数

main.js:

function insertData(){

  alert("Function InsertData called");
  var fname = document.forms["form1"]["fname"].value.toString();
  var lname = document.forms["form1"]["lname"].value.toString();
  var email = document.forms["form1"]["email"].value.toString();
  var pwd = document.forms["form1"]["pwd"].value.toString();
  // alert("fname"+fname);

  var invocationData = {
    adapter: 'SQLDemo',
    procedure: 'procedure4',
    parameters:[fname,lname,email,pwd]
  };

  var options = {
    onSuccess : InsertDataSuccess,
    onFailure : InsertDataFailed,
    timeout : 30000
  };
  WL.Client.invokeProcedure(invocationData, options);
}

function InsertDataSuccess(result){
  alert("Success");
  WL.Logger.debug("Retrieve success" +  JSON.stringify(result));
}

function InsertDataFailed(result){
  alert("Failure");
  WL.Logger.debug("Retrieve success" +  JSON.stringify(result));
}
适配器'sSQLDemo-impl.js:

var procedure4Statement = WL.Server.createSQLStatement("INSERT INTO INNOVATION (FIRSTNAME,LASTNAME,EMAIL,PASSWORD) VALUES(?,?,?,?)");
function procedure4(fname,lname,email,password) {
  return WL.Server.invokeSQLStatement({
      preparedStatement : procedure4Statement, 
      parameters : [fname,lname,email,password] 
  });
}

从messages.log文件:

E FWLSE009E:调用过程[project]时出错 DemoProject]SQLDemo/SqlStatementFWLSE0100E:参数:[项目 DemoProject]DB2SQL错误:SQLCODE=-104,SQLSTATE=42601, SQLERRMC=from;AJAX set FIRSTNAME=?;。。,驾驶员=3.61.75。表演 查询:更新AJAX集FIRSTNAME=?来自AJAX,其中id=?FWLSE0101E: 由以下原因引起: DemoProject]com.ibm.db2.jcc.am.SqlSyntaxErrorException:db2 SQL错误: SQLCODE=-104,SQLSTATE=42601,SQLERRMC=from;AJAX set FIRSTNAME=?;。。, DRIVER=3.61.75java.lang.RuntimeException:DB2SQL错误:SQLCODE=-104, SQLSTATE=42601,SQLERRMC=from;AJAX set FIRSTNAME=?;。。,驾驶员=3.61.75

无效的数据转换:参数实例vinod对于 请求转换。ERRORCODE=-4461,SQLSTATE=42815

下面还有更多的例外


确保在数据库方案中实际需要字符串,而不是过多地限制值长度等。

以及InsertDataFailed中出现的错误是什么。。。?“结果”是什么?另外,添加“procedure4”的实现。它将进入onFailure函数var procedure4Statement=WL.Server.createSQLStatement(“插入到创新(FIRSTNAME,LASTNAME,EMAIL,PASSWORD)值(?,,,?)”//var procedure3Statement=WL.Server.createSQLStatement(“从创新中选择*,其中FIRSTNAME=?和id=?”;函数过程4(fname,lname,email,password){返回WL.Server.invokeSQLStatement({preparedStatement:procedure4Statement,parameters:[fname,lname,email,password]});}1)显然,请用代码编辑问题-不要在注释中。2) 我在问它在“result”中打印了什么。同时在InsertDataFailed()中将“result”更改为“result.errorMsg”.result.errorMsg返回null,如果我在表单中给出空值,则返回成功消息IDAN Adar我的适配器正在工作,并且每当我单独调用我的适配器时,浏览器中的结果都会像{“isSuccessful”:true,“updateStatementResult”:{“updateCount”:1}表示数据库没有问题是的,适配器正在工作,数据库配置错误。读取错误。用谷歌搜索错误。Idan Adar我正在成功地将数据插入数据库。问题是,我的控制器转到故障功能打开,但插入了数据。问题就像适配器返回空值,但插入了数据一样。