当前位置: 首页 > 知识库问答 >
问题:

通过 JDBC 使用 Google Apps 脚本连接到 MSSQL Server 时出错

姚飞昂
2023-03-14

我正在尝试使用Google Apps脚本连接到MicrosoftSQLServer。我正在使用SQLServer 2008 R2,我正在使用建议的脚本之一,该脚本应该读取数据并将其放入电子表格:https://developers.google.com/apps-script/jdbc#reading_from_a_database

错误消息是:

无法建立数据库连接。检查连接字符串、用户名和密码

用户名和密码正常,用户是DBowers。端口也正确,我尝试使用:o IP地址1433通过Telnet连接到服务器,它可以工作。

这是代码:

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()));
}

你知道什么是错误的吗?我必须在我的服务器上做一些配置吗?还是在数据库中?上面提到的说明说要确保谷歌的IP地址可以到达数据库。但是我没有列出谷歌的所有IP地址,而是授予了对该端口上所有地址的访问权限。我还在服务器配置管理器中启用了TCP/IP协议SQL。我在MSSMS中授予了服务器的“远程连接”。请问还有什么其他想法吗?

共有2个答案

储毅
2023-03-14

问题在连接字符串中。

应该是这样的

          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服务器。我可以用它来帮助你。我会不断更新更多的功能!你可以在这里找到它。

谷歌电子表格JDBC连接器工具

温亮
2023-03-14

好吧,我在这里找到了答案:Google Apps Scripts/JDBC/MySQL

显然,连接字符串必须如下所示:

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

我不明白为什么连接字符串与Google文档中的连接字符串不同,但这个对我有用……

 类似资料:
  • 问题内容: 我正在尝试通过网络连接到MySQL数据库。我已经安装了MySQL,并且该服务在默认端口上运行。我还将SQL连接器安装到jar文件中,并将Java JDK添加到服务器计算机中。我可以使用以下代码连接到本地数据库: 但是,当我尝试通过IP地址(例如:192.168.1.45)通过网络连接到它时: 我收到连接错误: 有人知道这个问题是什么吗?我需要添加其他地址吗?我已经使用地址添加了默认端口

  • 我是Android应用程序开发新手,我正在尝试使用本机MS JDBC驱动程序(sqljdbc4.jar)连接到Azure SQL DB,我不断遇到以下错误: “错误 不过,我可以用与squirrel相同的连接字符串连接到DB。 我使用android Studio 2.1.3,我真的一筹莫展...这是代码: 我甚至试着用代码打开1433端口上的一个插座: 尽管我打电话时得到了正确的,但没有成功 我是

  • 这几天来,我无法在本地运行mac os ML的机器上连接到我的postgreSQL数据库。 我机器的nmap显示postgres在5432上运行,我可以通过pgadmin和psql进行本地连接。 收听地址设置为* 当我尝试连接JDBC时,我会遇到以下异常 组织。postgresql。util。PSQLException:连接被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。

  • 我有一个IP地址每次我收到连接失败的消息时,我都尝试了很多连接到该服务器的方法。出于安全原因,我隐藏了用户名和密码。 代码: 我有例外 组织。postgresql。util。PSQLException:连接尝试失败。在org。postgresql。果心v3。连接工厂impl。org上的openConnectionImpl(ConnectionFactoryImpl.java:292)。postgr

  • 我正在尝试连接到本地DB210.5Express-C服务器。这是一个测试环境,所以我不关心安全性。 我能够连接到命令行处理器(在Windows上运行),并更改了和的配置设置。当时我希望能够在没有身份验证的情况下进行连接(我重新启动了DB2服务),但仍然出现了一个错误。 当我尝试在没有用户名/密码的情况下连接时 我得到了错误:com.ibm.db2.jcc.am.SqlSynTaxErrorExce

  • 我们所面临的问题已在许多文件中得到充分证明https://stackoverflow.com/questions/34189756/warning-about-ssl-connection-when-connecting-to-mysql-database. 从过渡到时,我们就开始面临这个问题。建议的修复方法对我们有效,但我们有一个问题,我们不想更新Java源文件以进行更改,例如从 到 正如在ht