2013-09-24 398 views
0

我試圖使用Google Apps腳本連接到Microsoft SQL Server。我使用的是SQL Server 2008 R2和我使用的應該建議的腳本來讀取數據,並把它變成電子表格中的一個: https://developers.google.com/apps-script/jdbc#reading_from_a_database使用Google Apps Script通過JDBC連接到MSSQL Server時出錯

的錯誤信息是:

無法建立數據庫連接。檢查連接字符串,用戶名和密碼

用戶名和密碼是好的,用戶是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 Configuration Manager中啓用了TCP/IP協議。我在MSSMS中授予了「遠程連接」服務器。請有其他想法嗎?

回答

3

好了,我在這裏找到了答案: Google Apps Scripts/JDBC/MySQL

顯然,連接字符串看起來像這樣:

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

我不明白,爲什麼連接字符串從一個在谷歌不同文檔,但這一個適用於我...

0

問題是在連接字符串。

應該像這樣

  address = '%YOUR SQL HOSTNAME%'; 
      user = '%YOUR USE%'; 
      userPwd = '%YOUR PW%'; 
      dbUrl = 'jdbc:sqlserver://' + address + ':1433;databaseName=' + queryDb; 
      var conn = Jdbc.getConnection(dbUrl, user, userPwd); 

我在GitHub上一個完整的工具,你可以連接到MySQL和SQL服務器在哪裏。我可以用它來幫助你。我會不斷更新更多功能加班!你可以在這裏找到它。

GOOGLE SPREADSHEET JDBC CONNECTOR TOOL