У меня проблема с моим кодом JavaScript, он говорит об ошибке:
У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' 'в строке 1
Я пытаюсь вызвать этот запрос: «SELECT * FROM wp_fsqm_direct_52'
Он подключается к базе данных в порядке и показывает данные базы данных на листе, когда я вызываю запрос следующим образом: var sql = 'SELECT * FROM wp_fsqm_direct_52';
Но когда я вызываю точно такой же запрос из ячейки в ячейке A1 влист var sql = sheetData.getRange("A1").getValue();
, он возвращает мне ошибку.
Извините за мой плохой английский, я из Венесуэлы, и я здесь впервые.
Это мой код:
function readFromTable() {
var ss = SpreadsheetApp.getActive();
var sheetDetails = ss.getSheetByName('Details');
var sheetData = ss.getSheetByName('Query Sheet');
var host = sheetDetails.getRange("B1").getValue();
var databaseName = sheetDetails.getRange("B2").getValue();
var userName = sheetDetails.getRange("B3").getValue();
var password = sheetDetails.getRange("B4").getValue();
var tableName = sheetDetails.getRange("B6").getValue();
var url = 'jdbc:google:mysql://' + host + '/' + databaseName;
Logger.log(url);
Logger.log(userName);
Logger.log(password);
var sql = sheetData.getRange("A1").getValue();
try {
var connection = Jdbc.getCloudSqlConnection(url, userName, password);
var results = connection.createStatement().executeQuery(sql);
var metaData = results.getMetaData();
var columns = metaData.getColumnCount();
// Retrieve metaData to a 2D array
var values = [];
var value = [];
var element = '';
// Get table headers
for (i = 1; i <= columns; i++) {
element = metaData.getColumnLabel(i);
value.push(element);
}
values.push(value);
// Get table data row by row
while (results.next()) {
value = [];
for (i = 1; i <= columns; i++) {
element = results.getString(i);
value.push(element);
}
values.push(value);
}
// Cloese connection
results.close();
// Write data to sheet Data
SpreadsheetApp.flush();
sheetData.getRange(2, 1, values.length, value.length).setValues(values);
SpreadsheetApp.getActive().toast('Data has been updated.');
} catch (err) {
SpreadsheetApp.getActive().toast(err.message);
}
}