1

Google Apps Script を使用して Microsoft SQL Server に接続しようとしています。私はSQL Server 2008 R2を使用しており、データを読み取ってスプレッドシートに入れることになっている推奨スクリプトの1つを使用しています: https://developers.google.com/apps-script/jdbc#reading_from_a_database

エラーメッセージは次のとおりです。

データベース接続の確立に失敗しました。接続文字列、ユーザー名、およびパスワードを確認してください

ユーザー名とパスワードは問題ありません。ユーザーは DBowner です。ポートも正しいです。次を使用して Telnet 経由でサーバーに接続しようとしました: o IP アドレス 1433 で動作します。

コードは次のとおりです。

function foo() {
    var conn = Jdbc.getConnection("jdbc:sqlserver://IP-adress:1433/DBName","user","password");
    var stmt = conn.createStatement();
    stmt.setMaxRows(100);
    var start = new Date();
    var rs = stmt.executeQuery("select * from person");
    var doc = SpreadsheetApp.getActiveSpreadsheet();
    var cell = doc.getRange('a1');
    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 の IP アドレスがデータベースに確実に到達できるようにします。しかし、Google のすべての IP アドレスを一覧表示する代わりに、そのポートですべてのアクセスを許可しました。また、SQL Server 構成マネージャーで TCP/IP プロトコルを有効にしました。そして、MSSMS でサーバーに「リモート接続」を許可しました。他にアイデアはありますか?

4

2 に答える 2

3

さて、私はここで答えを見つけました: Google Apps Scripts/JDBC/MySQL

明らかに、接続文字列は次のようにする必要があります。

var conn = Jdbc.getConnection("jdbc:sqlserver://IP-address:1433;" + "databaseName=DBName;user=username;password=password;");

接続文字列が Google ドキュメントのものと異なる理由はわかりませんが、これは私にとってはうまくいきます...

于 2013-09-24T21:20:40.423 に答える