简体   繁体   English

在IBM MobileFirst上返回多个ResultSet

[英]return multiple ResultSet on IBM MobileFirst

I am facing problem when I try to invoke SQL resultSet for second time, and I get error Cannot read property "resultSet" from undefined . 当我尝试第二次调用SQL resultSet时遇到问题,并且出现错误Cannot read property "resultSet" from undefined so I just wondering how to reuse resultSet or call multiple resultSet . 所以我只是想知道如何重用resultSet或调用多个resultSet

Main.js Main.js

    function getAuthen(){

    var username = $("#AuthUsername").val();
    var password = $("#AuthPassword").val();

    var invocationData = {
            adapter: "ConnectDB",
            procedure : 'getauthentication',
            parameters : [username, password]
    };

    WL.Client.invokeProcedure(invocationData, {
        onSuccess : getAuthenSuccess,
        onFailure : getAuthenFailure
    });
}

function getAuthenSuccess(result){
    if(result.invocationResult.resultSet.length > 0)
        {

          $("#AuthDiv").hide();
          $("#header_main").show();
          $("#Menu").show()

          $('#DisplayName').html(result.invocationResult.resultSet[0].NME);
          $('#DisplaySurname').html(result.invocationResult.resultSet[0].SURNME);

        } else {

            getAuthenFailure();

        }
}

function getAuthenFailure(result){

    var alertTitle = "Fail to Login";
    var alertText  = "Please Enter Username and Password Correctly";

    WL.SimpleDialog.show(alertTitle, alertText,[
     {
       text : 'OK',
       handler : getLogout
     }
   ]);
}

//***************************** END ************************\\


//*********** Get Problem On Going ************************//
function queryProblemOnGoing(){



    var invocationDataP = {
            adapter: "ConnectDB",
            procedure : 'getproblemOngoing',
            parameters : []
    };

    WL.Client.invokeProcedure(invocationDataP, {
        onSuccess : getProblemOnGoingSuccess,
        onFailure : getProblemOnGoingFailure
    });
}

function getProblemOnGoingSuccess(result){

    if(result.invocationResult.resultSet.length > 0)
        {
         window.alert("Success");
          $("#Menu").show()
         // displayQueryOnGoing(result.invocationResult.resultSet);

        } else {

            window.alert("Fail");
            //getProblemOnGoingFailure();

        }
}

function getProblemOnGoingFailure(result){

    var alertTitle = "Fail to Retrive Data";
    var alertText  = "Please Contact Administrator";

    WL.SimpleDialog.show(alertTitle, alertText,[
     {
       text : 'OK'
     }
   ]);
}

function displayQueryOnGoing(result) {

    for (var i =0; i < result.length; i++)
        {
            $('#problemOnGoingTable').append("<tr><td>" + result[i].CALLNO + "</td></tr>");
            $('#problemOnGoingTable').append("<tr><td>" + result[i].CALLNOREF + "</td></tr>");
        }
}

ConnectDB Adapter ConnectDB适配器

var AuthenStatement = WL.Server.createSQLStatement("select NME, SURNME, CUS_ID from USERS where USERID = ? AND PASSWD = ?");
var problemOngoingStatement = WL.Server.createSQLStatement("select * from CALL”);

function getauthentication(userid, password) {
    return WL.Server.invokeSQLStatement({
        preparedStatement : AuthenStatement,
        parameters : [userid, password]
    });
}


function getproblemOngoing() {
    return WL.Server.invokeSQLStatement({
        preparedStatement : problemOngoingStatement,
        parameters : []
    });
}

I am not really sure how it is working the first time, or which part is working on the first time. 我不太确定它是第一次工作还是第一次工作。

Anyway, I suspect that the problem is here: for (var i =0; i < result.length; i++) 无论如何,我怀疑问题出在这里: for (var i =0; i < result.length; i++)

Perhaps you should change result.length to result.invocationResult.resultSet.length . 也许你应该改变result.lengthresult.invocationResult.resultSet.length

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM