Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server mssql jdbc连接的连接错误_Sql Server_Jdbc_Google Apps Script - Fatal编程技术网

Sql server mssql jdbc连接的连接错误

Sql server mssql jdbc连接的连接错误,sql-server,jdbc,google-apps-script,Sql Server,Jdbc,Google Apps Script,我使用Squirrel(使用jTDS)远程连接到我的数据库,因此我认为我的参数设置正确。GAS系统地给了我一个错误:“未能建立数据库连接”。有没有办法调试那个坏连接?我的代码来自gasjdbc示例,但我使用的是mssql 有什么建议吗 注意:我也尝试了以下方法,因为这就是我在Squirrel中输入它的方式: var conn = Jdbc.getConnection("jdbc:sqlserver:///my.server.adress:2433/MyName", "MyName", "pa

我使用Squirrel(使用jTDS)远程连接到我的数据库,因此我认为我的参数设置正确。GAS系统地给了我一个错误:“未能建立数据库连接”。有没有办法调试那个坏连接?我的代码来自gasjdbc示例,但我使用的是mssql

有什么建议吗

注意:我也尝试了以下方法,因为这就是我在Squirrel中输入它的方式:

  var conn = Jdbc.getConnection("jdbc:sqlserver:///my.server.adress:2433/MyName", "MyName", "password");
卡住了

function foo() {
  var conn = Jdbc.getConnection("jdbc:sqlserver:///my.server.adress:2433", "MyName", "password");
  var stmt = conn.createStatement();
  stmt.setMaxRows(100);
  var start = new Date();
  var rs = stmt.executeQuery("select * from MyTable");

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var cell = doc.getRange('a1');
  var row = 0;
  while(rs.next()) {
    cell.offset(row, 0).setValue(rs.getString(1));
    cell.offset(row, 1).setValue(rs.getString(2));
    cell.offset(row, 2).setValue(rs.getString(3));
    cell.offset(row, 3).setValue(rs.getString(4));
    row++;
  }
  rs.close();
  stmt.close();
  conn.close();
  var end = new Date();
  Logger.log("time took: " + (end.getTime() - start.getTime()));
}

好吧,愚蠢的错误:连接字符串中有多余的斜杠

看起来我还必须使用限定名。因此,我必须使用AccountName.DatabaseName.MyTable而不是MyTable


但它是有效的

您还可以在连接字符串中指定数据库名称:

var conn=Jdbc.getConnection(“Jdbc:mysql://:/,“user”,“password”)


这样就不需要指定数据库名称。

这是完整的功能(它可以工作!),使用:

  function typestring_f() {
  var conn = Jdbc.getConnection("jdbc:sqlserver://my.server.adress:2433", "MyName", "password");
  var stmt = conn.createStatement();

  var ret = stmt.execute("USE wgwDatabase;");

  pstmt=conn.prepareStatement("{ call f_dict_sp(?)}");  // get the stored procedure with 1 parameter.
  pstmt.setString(1, "cat%"); // set the parameter (a string for matching with Like )
  pstmt.setMaxRows(100);
  rs= pstmt.executeQuery(); // run the query

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var cell = doc.getActiveRange(); // ac('a1');
  var row = 0;
  while(rs.next()) {
    cell.offset(row, 0).setValue(rs.getString(1));
    cell.offset(row, 1).setValue(rs.getString(2));
    row++;
  }
  rs.close();
  pstmt.close();
  conn.close();

 }

谢谢我的解决办法是使用。。USE语句:
var stmt=conn.createStatement();var ret=stmt.execute(“使用wgwDatabase;”)你给出的其他语法对我来说有点神秘!