【发布时间】:2018-08-28 18:05:19
【问题描述】:
我正在尝试创建一个应用程序脚本项目,该项目从列表中获取 MySQL 查询并执行它们。
列表中最后一个单元格包含单词“EXIT”。
我的意图是使用 If break 退出 for 循环。
它正在处理更新查询并执行它们,但不会退出循环继续
任何指导将不胜感激。
Logger.log(ipAddress)
Logger.log(userPassword)
Logger.log(user)
Logger.log(dbUrl)
var connection = Jdbc.getConnection(dbUrl, user, userPassword);
var stmt = connection.createStatement()
Logger.log(connection);
for (var i = 2;; i++) {
var queryCell = querySheet.getRange(i, 1).getValue();
Logger.log(queryCell);
if (queryCell == "EXIT") {
log.setValue(queryCell);
break;
}
var rs = stmt.executeUpdate(queryCell);
}
rs.close();
stmt.close();
connection.close();
Logger.log("Loop Exited")
var toast = SpreadsheetApp.getActiveSpreadsheet().toast('Complete', 'Status', 10);
var time = new Date();
loadEndCell.setValue(time);
【问题讨论】:
-
您是否收到任何错误消息?
log是什么? -
"Exceeded maximum execution time" 这是 google 提供的允许 gs 脚本的最长时间的错误。所以它会在 5 分钟左右后超时。日志反映查询正在执行,它肯定没有离开循环
-
您确定字符串是
EXIT而不是exit尝试记录您的所有行。假设您有 100 行将for循环设置为for (var i = 2; i <101; i++)并记录每个单元格。 -
是的,它是“退出”。我正在通过它运行大约 5k 个查询。我也可以看到他们从工作台进入数据库。有时由于某种原因没有完成所有这些。
-
我的意思是也许它的格式使它变成大写你的单元格中有公式吗? @TheWizEd 也为您提供了一个很好的解决方案;
标签: mysql jdbc google-apps-script google-sheets