2

尝试在我的“mysql”数据库的“user”表中获取所有用户列时,我有一个奇怪的响应。

我正在使用 Google Cloud SQL,通过 JDBC 类从 Google Apps Script 访问它。这是我的代码:

function displayingOneUser(){

  var connection = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://blablabla/mysql", "root", rootPwd);

  var mySqlStatement = connection.createStatement();

  var resultSet = mySqlStatement.executeQuery("select * from user");

  if(resultSet.next()){
    var str="";
    for(var i=1; i<43; i++){
      str=str.concat(resultSet.getObject(i)+" | ");
      Logger.log("str so far : "+str);
    }
    Logger.log("Displaying first user : "+str+".");
  }

  mySqlStatement.close();
  connection.close();


}

我收到以下错误:“禁止访问类“(类)”。”,当它到达第 33 或 34 列时(我不记得是哪一个)。如果我使用 getString(),那么它可以正常工作。

知道这可能来自哪里吗?

干杯,

胜利者

4

1 回答 1

0

我能够重现这个问题,我相信这确实是一个错误。这与默认数据库中表中的blob列有关usermysql

在此处输入图像描述

尝试阅读任何带有getObject()中断的列。getString()作品。

很好的发现,请在问题跟踪器中记录一个错误,以便我们深入研究。

它的第 34 列,ssl_cipher即第一个blob中断的列。其他人也打破了。最简单的复制案例 -

function displayingOneUser(){
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://INSTANCE_NAME/mysql");
  var sql = conn.createStatement();
  var resultSet = sql.executeQuery("select ssl_cipher from user");
  if(resultSet.next()){
    resultSet.getObject(1);//this line will break
  }
  sql.close();
  conn.close();
}
于 2013-02-15T20:22:34.323 回答