IBM Worklight - 无法显示使用 SQL 适配器检索到的数据

Posted

技术标签:

【中文标题】IBM Worklight - 无法显示使用 SQL 适配器检索到的数据【英文标题】:IBM Worklight - Unable to display data retrieved using SQL adapter 【发布时间】:2014-03-26 18:38:16 【问题描述】:

我正在尝试从数据库中获取数据并将其显示在应用程序中。 下面是我的代码。调用运行良好,但数据不显示。

sqlAdapter-impl.js

var selectStatement = WL.Server.createSQLStatement("select * from studentinfo");

function getStudentInfos()     
    return WL.Server.invokeSQLStatement(
        preparedStatement : selectStatement,
        parameters : []
    );

sqlAdapter.js

window.$ = window.jQuery = WLJQ;

function wlCommonInit() 
    GetEmployeeData();


function GetEmployeeData() 
    var invocationData = 
        adapter : 'sqlAdapter',
        procedure : 'getStudentInfos'
    ;

    WL.Client.invokeProcedure(invocationData,
        onSuccess : loadFeedsSuccess,
        onFailure : loadFeedsFailure
    );


function loadFeedsSuccess(result)
    WL.Logger.debug("Feed retrieve success");
    busyIndicator.hide();
    if (result.invocationResult.Items.length>0) 
        displayFeeds(result.invocationResult.Items);
    else 
        loadFeedsFailure();


function displayFeeds(items)
    var ul = $('#itemsList');
    for (var i = 0; i < items.length; i++) 
        var li = $('<li/>').html(items[i].sid);
        var pubDate = $('<div/>', 'class': 'pubDate').html(items[i].sname);
        li.append(pubDate);     
        ul.append(li);
    

sqlAdapter.html

<body id="content" style="display: none;">
    <div id="itemsList"></div>

    <script src="js/initOptions.js"></script>
    <script src="js/sqlAdapter.js"></script>
    <script src="js/messages.js"></script>
</body>

这就是我调用过程的结果

    
    "isSuccessful": true,
    "resultSet": [
    
     "sclass": "PUC",
     "sgrade": "A+",
     "sid": "PUC001",
     "sname": "Rohan"
     ,
     
     "sclass": "PUC",
     "sgrade": "A",
     "sid": "PUC002",
     "sname": "Rakesh"
     ,
    
     "sclass": "PUC",
     "sgrade": "C",
     "sid": "PUC003",
     "sname": "Raj"
     ,
     
     "sclass": "PUC",
     "sgrade": "E",
     "sid": "PUC004",
     "sname": "Roman"
      
      ] 
      

我只想把这些东西都打印在屏幕上

【问题讨论】:

你得到什么错误? 我在控制台上什么都没有。 当你说'在调用过程中它做得很好'时,你的意思是你确实从'loadFeedSuccess'中的过程中获取数据? 我认为他的意思是调用成功但显示项目失败。 @user3465606,调用的结果是什么?将其添加到问题中。 【参考方案1】:

首先,您需要更改“项目”:

if (result.invocationResult.Items.length>0) 
        displayFeeds(result.invocationResult.Items);

到“结果集”:

if (result.invocationResult.resultSet.length>0) 
        displayFeeds(result.invocationResult.resultSet);

其次,我将 Worklight 提供的 worklight_training 数据库脚本与问题中的代码 sn-ps 结合使用。我已将 displayFeeds 函数更改为:

function displayFeeds(items) 
    var ul = $('#itemsList'), i, li;

    for (i = 0; i < items.length; i += 1)      
        // Create new <li> element and populate it
        li = $('<li/>').text(item.firstName);   
        // Append the <li> element to the <ul> element
        ul.append(li);      
    

最终结果是显示users 表中的firstName 值。 然后,您可以更多地使用 javascript 来显示 想要从 您的 数据库表中得到什么...

顺便说一句,如您所见...Chrome 开发工具中的控制台确实显示了一些东西...您声称在您的情况下它没有。你需要弄清楚这一点。

【讨论】:

@user3465606,如果我的回答有助于解决您的问题,请标记为已回答。

以上是关于IBM Worklight - 无法显示使用 SQL 适配器检索到的数据的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0.0.1 - jQuery 调色板不显示

IBM Worklight - 无法在 Worklight Console 和设备中更改应用程序图标

IBM Worklight 6.0 - 无法在 avd 上使用适用于 android 环境的 dojo 工具包运行示例混合 Worklight 应用程序?

IBM Worklight:无法在 Worklight Console 中上载适配器

IBM Worklight 6.0 - 无法访问 Worklight 服务器

如何调试 IBM Worklight 适配器