我正在尝试使用 Google Apps 脚本连接到 Microsoft SQL Server。我正在使用 SQL Server 2008 R2,并且正在使用建议的脚本之一,该脚本应该读取数据并将其放入电子表格中:https://developers.google.com/apps-script/jdbc#reading_from_a_database
错误信息是:
无法建立数据库连接。检查连接字符串、用户名和密码
用户名和密码都OK,用户是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 地址,而是授予了该端口上所有 IP 地址的访问权限。我还在 SQL Server 配置管理器中启用了 TCP/IP 协议。我在 MSSMS 中向服务器授予了“远程连接”权限。请问还有其他想法吗?
好吧,我在这里找到了答案:Google Apps 脚本/JDBC/MySQL
显然,连接字符串必须如下所示:
var conn = Jdbc.getConnection("jdbc:sqlserver://IP-address:1433;" + "databaseName=DBName;user=username;password=password;");
我不明白为什么连接字符串与 Google 文档中的不同,但这个对我有用......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)