【问题标题】:How to return jdbcResultSet from google appscript .gs to html file如何将 jdbcResultSet 从 google appscript .gs 返回到 html 文件
【发布时间】:2014-01-17 06:34:34
【问题描述】:

我在我的 appscript 应用程序中使用 html 服务。

在我的 sample.gs 文件中,我连接到 jdbc 并从我的云 sql DB 中获取值。

我的 sample.gs 中的代码是这样的

function doGet(){
return HtmlService.createTemplateFromFile('datatable').evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

function getSql(){  
  var conn = Jdbc.getCloudSqlConnection('here i write my sql url');
  var stmt = conn.createStatement();
  var results = stmt.executeQuery("select name, location, address, phone, fax from  person");
  Logger.log(results);
  return results;
}

Loggers 记录 jdbcResultSet。所以查询工作正常。

在我的 datatable.html 文件中,我调用 gs 文件并从表中获取值。它工作正常。但只有返回类型值在我的 html 文件中为空。 我的 datable.html 代码和他的一样

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type='text/javascript'>
    $(function(){
        var runner = google.script.run.withFailureHandler(onFailure);
        runner.withSuccessHandler(onSuccess).getSql();       
});
function onSuccess(data){
  alert(data);       
}
function onFailure(data){
  alert(data);
}

进入成功函数。但警报为空。 请帮助我如何获取结果值。

【问题讨论】:

    标签: mysql jdbc google-apps-script google-sites google-cloud-sql


    【解决方案1】:

    您需要在服务器端检索结果(gs 代码),例如将它们放在一个数组中并返回到客户端。检查这个例子

    代码.gs

    function doGet(){
    return HtmlService.createTemplateFromFile('datatable').evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
    }
    
    function getSql(){  
      var conn = Jdbc.getConnection('jdbc:mysql://sql4.freesqldatabase.com:3306/sql427377', 'sql427377', '');
      var stmt = conn.createStatement();
      var results = stmt.executeQuery("select name, location, address, phone, fax from  person");
      Logger.log(results);
      var resultsArray = [];
      while(results.next()) {
        resultsArray.push({'name': results.getString(1),
                      'location' : results.getString(2),
                      'address' : results.getString(3),
                      'phone' : results.getString(4),
                      'fax' : results.getString(5)});
      }
      return JSON.stringify(resultsArray);
    }
    

    数据表

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type='text/javascript'>
        $(function(){
            var runner = google.script.run.withFailureHandler(onFailure);
            runner.withSuccessHandler(onSuccess).getSql();       
    });
    function onSuccess(data){
    var data = JSON.parse(data);
      for(var x in data) {
         $("#myTable").append("<tr><td>"+data[x].name+"</td><td>"+data[x].location+"</td>   <td>"+data[x].address+"</td><td>"+data[x].phone+"</td><td>"+data[x].fax+"</td></tr>");
      }
    }
    function onFailure(data){
      alert(data);
    }
    </script>
    
    <table id="myTable"></table>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多