Сценарий Google app ERROR "Индекс параметров вне диапазона (1> количество параметров, равное 0)" - PullRequest
0 голосов
/ 30 августа 2018

Я знаю, что эта ошибка была указана несколько раз. Я прошел все предыдущие вопросы и думаю, что моя ситуация уникальна.

Ошибка, которую я получаю, это

Индекс параметра вне диапазона (1> количество параметров, равное 0)

Это уникально, так как предполагается, что скрипт должен корректировать значения вставки в зависимости от количества заголовков в листе.

В конце, никакие вставки не сделаны к серверу SQL.

Образец журналов

[[3333096.0, LOADER, 05:30:22, 08/30/2018 05:30:22, 08/30/2018, ACCOUNT HAS BEEN SENT TO Agency STATSUS CHANGED FROM |originalstatus| TO |teststatus| ASSIGNEDTO CHANGE FROM |originalstatus| TO |testassigned| PORTFOLIO NAME: |PORTFOLIOX|],
[,  , , , , ],
[,  , , , , ],
[,  , , , , ],
[,  , , , , ],
[,  , , , , ],
[,  , , , , ],
[,  , , , , ],
[,  , , , , ],
[,  , , , , ]

Image of Sheet

function dboupdate() {
  var data = getData()  
  var headerstring = [1]  
  data = data[0]  
  try {
  
    var start = new Date();
    var conn = Jdbc.getConnection("X");   
  
    var sql = 'INSERT INTO ' + tablename + headerstring ;
    Logger.log(sql);
    var stmt = conn.prepareStatement(sql);

    for (var r in data) {
      Logger.log(data[r]);
      for (var c in data[r]) {
         stmt.setString(parseInt(c) +1 , data[r][c]);
      }
      stmt.addBatch();
    }
    var batch = stmt.executeBatch();
    conn.commit();
    conn.close();

    var end = new date();
 
  } catch (err) {
    SpreadsheetApp.getActive().toast(err.message);
    Logger.log(err.message);
  }
}

function getData(){
  var app = SpreadsheetApp;  
  // (filenumber,	collectorname,	logtime,	logdateandtime,	logdate,logmessage) VALUES (?,?,?,?,?,?)
  var ss = app.openById('X') ;  
  var importSheet = ss.getSheetByName('DBOlog');  
  var data = importSheet.getDataRange().getValues();
  var header = data[0];
  var headerstring = header.join(',')

  headerstring = '('+ headerstring + ') VALUES ('

  var questions = Array(header.length +1).join('?').split('')

  headerstring = headerstring + questions.join(',') + ')'
  Logger.log(headerstring)
  Logger.log(data.slice(1))
  return [data.slice(1), headerstring]
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...