У меня есть Google приложения скрипт, который работает в одном экземпляре, но не другойошибка Google Apps Script при попытке чтения в базу данных с помощью JDBC
Оба сценария идентичны, единственное различие, которое я запрограммировал это JDBC запрос.
Здесь работает функция:
function wbk() {
var conn = Jdbc.getConnection("jdbc:mysql://aaa.aaaa.org:3306/aaaaa", "aaaa", "bbbbb");
var stmt = conn.createStatement();
stmt.setMaxRows(10000);
var start = new Date();
var rs = stmt.executeQuery("SELECT `DateUpdate`, `AllianceName`, `PlayerName`, `Score`, `Rank`, `TotalCities`, `FameTotal`, `FameRank`, `DefeatedTotal`, `DefeatedRank`, `PlunderTotal`, `PlunderRank` FROM `Member` WHERE AllianceID='2' OR AllianceID='48'");
var doc = SpreadsheetApp.getActiveSpreadsheet();
var first = doc.getSheetByName("WBK");
first.activate();
var cell = first.getRange('b2');
var row = 0;
while (rs.next()) {
for (var col = 0; col < rs.getMetaData().getColumnCount(); col++) {
cell.offset(row, col).setValue(rs.getString(col + 1));
}
row++;
}
rs.close();
stmt.close();
conn.close();
var end = new Date();
Logger.log("time took: " + (end.getTime() - start.getTime()));
};
Я побежал это дважды, после обновления БД и результаты были совершенны, чем ожидалось.
Теперь, когда я пытаюсь использовать ту же функцию и только модифицирую запрос (и я проверил инструкцию SQL в db, это просто отлично), функция не работает.
Это неработающая функция.
function WC_Combined() {
var conn = Jdbc.getConnection("jdbc:mysql://aaa.aaaa.org:3306/aaaaa", "aaaa", "bbbbb");
var stmt = conn.createStatement();
stmt.setMaxRows(10000);
var start = new Date();
var rs = stmt.executeQuery("SELECT `DateUpdate`, `AllianceName`, `PlayerName`, `Score`, `Rank`, `TotalCities`, `FameTotal`, `FameRank`, `DefeatedTotal`, `DefeatedRank`, `PlunderTotal`, `PlunderRank` FROM `Member` where AllianceID='195' OR AllianceID='494'");
var doc = SpreadsheetApp.getActiveSpreadsheet();
var first = doc.getSheetByName("Combined");
first.activate();
var cell = first.getRange('b2');
var row = 0;
while (rs.next()) {
for (var col = 0; col < rs.getMetaData().getColumnCount(); col++) {
cell.offset(row, col).setValue(rs.getString(col + 1));
}
row++;
}
rs.close();
stmt.close();
conn.close();
var end = new Date();
Logger.log("time took: " + (end.getTime() - start.getTime()));
};
Сообщение об ошибке я получаю в отладочной консоли на Google является
Service error: Spreadsheets (line 110, file "Code")
линии 110 в моем коде во второй функции я Приведенную выше cell.offset(row, col).setValue(rs.getString(col + 1));
; Я не могу найти разницы между этой строкой во 2-й функции или 1-м приведенным мной примером. И оба они работали в первый раз, когда я пытался их запустить.
Любые идеи, кто-нибудь? Я даже не использовал специальный код, этот код в основном представляет собой пример документации Google Apps.
Я использую скрипты Google в электронной таблице Документов Google, подключаясь к mysql. Я открыл удаленные подключения к mysql и имею 2 рабочие таблицы, поэтому я знаю, что соединение работает.
спасибо за указатель. приятно знать, что я не страдаю в одиночку. Я обновил трекер. Забавно, мне пришлось удалить лист с проблемами, а затем добавить еще раз. Было немного боли, чтобы воссоздать названные диапазоны, но после этого все работало как прелесть, так что это определенно не был код. – MSM