2016-09-09 7 views
0

google appsスクリプトでは、リスト項目にmysqlテーブルのデータを入力する方法があります。私は自分の関数を書いたが、ドロップダウンリストには定義されていない。私が間違っているところを教えてください。リストアイテムをmysqlテーブルのデータで埋め込むgoogle appsスクリプト

function readFormListFromTable() { 
var address = 'database_IP_address'; 
var user = 'user_name'; 
var userPwd = 'user_password'; 
var db = 'database_name'; 
var dbUrl = 'jdbc:mysql://' + address + '/' + db; 
    var conn = Jdbc.getConnection(dbUrl, user, userPwd); 
    var stmt = conn.createStatement(); 
    var results = stmt.executeQuery('SELECT [name] FROM employee'); 
    var numCols = results.getMetaData().getColumnCount(); 
    while (results.next()) { 
    var rowString = ''; 
    for (var col = 0; col < numCols; col++) { 
     rowString += results.getString(col + 1) + '\t'; 
    } 
    } 
    results.close(); 
    stmt.close(); 
var form = FormApp.openById('42udfksdfksukdnf-DWER'); 
var tablelistitem = form.addListItem();   
tablelistitem.setTitle('Name from mysql table') 
        .setChoices([tablelistitem.createChoice(rowString)]); 
} 
+0

あなたはこの[ドキュメント](httpsをチェックしてみてください://開発者。 google.com/apps-script/guides/jdbc)を参照してください。 Apps Scriptは、標準のJava Database Connectivityテクノロジを包括するJDBCサービスを介して外部データベースに接続できます。 Apps Scriptでは、JDBCサービスはGoogle Cloud SQL、MySQL、Microsoft SQL Server、およびOracleデータベースをサポートしています。上記のサンプル・コード(https://developers.google.com/apps-script/guides/jdbc#sample_code)のリンクを確認して、データベースの設定と作成方法、データベースへの書き込みと読み取り方法についても確認してください。 – KENdi

答えて

1

次のスクリプトをフォームに作成し、開いているときにティガーを設定して、ドロップダウンリストとその作業を設定します。私は、あなたがこのコードの助けを願っています:

function onOpen(){ 
var conexion=conectar_mysql(); //realizo conexion con mysql 
var tiposHora=getTiposHora(conexion); //genero una lista con los tipos de hora disponibles 
var form = FormApp.openById('form_id'); 
var item = form.addListItem(); // lista de todos los elementos que pertenecen al formulario para recargar el que me interese 
item.setTitle('Tipos de Horas') 
item.setChoiceValues(tiposHora);//recarga con los valores que necesito 

}

function getTiposHora(conexion){ 
var stmt = conexion.createStatement(); 
var results = stmt.executeQuery('SELECT tipo FROM bbdd.tabla;'); 
var numCols = results.getMetaData().getColumnCount(); 
var tiposDeHora=[]; 
while (results.next()) { 
    var rowString = ''; 
    for (var col = 0; col < numCols; col++) { 
      rowString += results.getString(col + 1) + '\t'; 
      tiposDeHora.push(rowString); 
    } 
} 
return tiposDeHora; 

}

function conectar_mysql(){ 

var address = 'direccion'; 
var user = 'usuario'; 
var userPwd = 'password'; 
var db = 'bbdd'; 
var instanceUrl = 'jdbc:mysql://' + address; 
var dbUrl = instanceUrl + '/' + db; 
var conn = Jdbc.getConnection(dbUrl, user, userPwd); 
conn.setAutoCommit(false); 
return conn; 

}

関連する問題