我试图在我的“mysql”数据库的表“user”中获取所有用户列时,我得到一个奇怪的回应。
我正在使用Google Cloud SQL,使用JDBC类从Google Apps脚本访问它。这是我的代码:
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(),那么它没有问题。
知道可能来自哪里?
干杯,
维克多
答案 0 :(得分:0)
我能够重现这个问题,我相信这确实是一个错误。这与默认blob
数据库
user
表中的mysql
列有关
尝试阅读getObject()
个中断的任何列。 getString()
有效。
很好找,请在Issue Tracker中记录一个错误,以便我们深入研究。
第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();
}