2016-04-08 4 views
0

Ich versuche, vier von fünf Spalten in FusionTables mit Daten aus Google Spreadsheet zu aktualisieren. Ich habe gerade angefangen, Apps-Skripte zu programmieren. Ich brauche Hilfe mit Update-Abfrage. Irgendwelche Vorschläge oder Rückgespräch werden geschätzt. Vielen Dank im Voraus.Aktualisieren Sie Google FusionTables programmgesteuert mit Daten aus der Tabelle

function sync() { 
    var tasks = FusionTables.Task.list(TABLE_ID); 
    // Only run if there are no outstanding deletions or schema changes. 
    if (tasks.totalItems === 0) { 
     var sheet = SpreadsheetApp.getActiveSheet(); 
     var data = sheet.getDataRange().getValues(); 
     //i = 1 for 1st row with values in spreadsheet. 0 for column headers. 
     for (var i = 1; i < data.length; i++) { 
      var cName = data[i][0]; 
      var ed_vs = data[i][1]; 
      var ed_vs_ada = data[i][2]; 
      var color = data[i][3];  
      //update ft 
      var updateQry = "update "+TABLE_ID+" set ED_VS = "+ed_vs+",ED_VS_ADA = "+ed_vs_ada+", COLOR = "+color+ "where COUNTY = "+cName; 
      //FusionTables.Query.sql(updateQry); 
      //is this even possible to execute an update query? help with syntax? 
      Logger.log(updateQry); 
     } 
    } 
}; 
+0

Also wo ist der Teil, der Hilfe benötigt? – SwagBomb

+0

//FusionTables.Query.sql (updateQry); Ich brauche Hilfe beim Ausführen der Update-Abfrage. – user3393629

+0

Update: Syntax scheint korrekt, aber Problem ist in SQL-Abfrage. Ich muss ROWID anstelle von 'county' in where-Klausel verwenden. – user3393629

Antwort

0

Hier ist Arbeitslösung für jemanden mit ähnlichen Problem.

function sync() { 
    var tasks = FusionTables.Task.list(TABLE_ID); 
    // Only run if there are no outstanding deletions or schema changes. 
    if (tasks.totalItems === 0) { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getDataRange().getValues(); 
    //i = 1 for 1st row with values in spreadsheet. 0 will give column headers. 
    for (var i = 1; i < data.length; i++) { 
     var cName = data[i][0]; 
     var ed_vs = data[i][1]; 
     var ed_vs_ada = data[i][2]; 
     var color = data[i][3]; 

     //parse rowid from output 
     var selQry = "select ROWID FROM "+TABLE_ID+" where COUNTY = '"+cName+"' "; 
     var cdata = FusionTables.Query.sql(selQry); 
     var c_rowid = cdata.rows[0][0]; //rowid 
     Logger.log(c_rowid); 

     var updateQry = "update "+TABLE_ID+" set ED_VS = '"+ed_vs+"',ED_VS_ADA = '"+ed_vs_ada+"', COLOR = '"+color+ "' where ROWID = '"+c_rowid+"' "; 

     FusionTables.Query.sql(updateQry); 

     Logger.log(updateQry);   
    } 
    } 
};