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

标签 ibm-mobilefirst mobilefirst-adapters

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

主要.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));
}

Adapter的SQLDemo-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 FWLSE0099E: An error occurred while invoking procedure [project DemoProject]SQLDemo/SqlStatementFWLSE0100E: parameters: [project DemoProject] DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=from;AJAX set FIRSTNAME=?;.., DRIVER=3.61.75. Performed query: update AJAX set FIRSTNAME=? from AJAX where id=? FWLSE0101E: Caused by: [project DemoProject]com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=from;AJAX set FIRSTNAME=?;.., DRIVER=3.61.75java.lang.RuntimeException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=from;AJAX set FIRSTNAME=?;.., DRIVER=3.61.75.

...

Invalid data conversion: Parameter instance vinod is invalid for the requested conversion. ERRORCODE=-4461, SQLSTATE=42815

下面还有更多异常(exception)。

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

关于ibm-mobilefirst - IBM MobileFirst 中的 SQL 适配器调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29800565/

相关文章:

java - Worklight、Java SQL 适配器、适配器部署失败

tomcat - 尝试将适配器部署到在 Tomcat 7 上运行的 MobileFirst Platform 6.3 时出错

mysql - MobileFirst 适配器 : JSON result order is different as that of the DB data position

javascript - 如何从 javascript 适配器中获取 userIdentity?

javascript - MobileFirst V8.0.0,cordova 客户端应用程序无法从 JavaScriptSOAP 获取响应(SOAP 集成)

javascript - 从 IBM Mobilefirst http 适配器调用后端 POST Web 服务时出错

javascript - Android 设备中工作灯混合应用程序中的 Inappbrowser 问题

ibm-mobilefirst - 在 MobileFirst 7 中部署项目环境时遇到问题

java - 从工作灯加载 Java 中的特定证书

android - 根据设备屏幕调整图像的高度和宽度