【问题标题】:jTDS 1.2.7 and SQL Server 2000 Default instancejTDS 1.2.7 和 SQL Server 2000 默认实例
【发布时间】:2014-01-05 18:30:20
【问题描述】:

一个非常简单的sn-p:

private static final String mydriver="net.sourceforge.jtds.jdbc.Driver";    

private static final String myurl="jdbc:jtds:sqlserver://xx.xxx.xxx.xxx/myDatabase";

private Connection myconn;

[stuff]

public int connect(final String username,final String password){

    try{
    Class.forName(mydriver);
    myconn=DriverManager.getConnection(myurl,username,password);
    } catch (ClassNotFoundException e) {
       return 1;
      } catch (SQLException e) {
       return 2;
}
    return 0;
}

请注意,几点: 1. 作为一个控件,我安装了一个非常简单的客户端,叫 Pascal Nunes 的 MSSQL Client。它需要 IP、DB、user、pwd 并成功连接(不指定端口 1433)。我已经和 Pascal 本人核实过,他使用的是 jTDS 1.2.7,所以我确保我的 jTDS 版本与他的一致。 2.我尝试了一些参数和参数组合,但似乎没有任何效果 3.我知道服务器和网络都不能负责,因为Pascal的应用程序有效 4. 根据我的 Nexus 7,Pascal 的应用程序具有“完全网络访问权限”。我给了我的应用程序: 清单中的 android.permission.INTERNET。我没有看到任何其他可能适用的权限,但我是新手 5. 否则,必须有 jTDS 参数需要从它们的默认值变形。如果是这样,该死的,如果我能找到他们。

有什么想法吗?

【问题讨论】:

  • 安全模型在 SQL Server 2000 和 SQL Server 2005 之间发生了变化。如果您使用新的网络库,它们可能会出现问题。当 2014 年即将发布时,你为什么要使用 2000?您是否查看了数据库服务器的 SQL Server 错误日志或 Windows 应用程序日志中的错误??
  • 恕我直言,我的观点是:一个免费的 android 应用程序正在与我的服务器进行通信,提供最少的信息,并且应该是一个相对简单的代码 sn-p 失败(附加说明:Eclipse 的 SQL 资源管理器使用相同的 url,包括 Intranet (192.168. etc) 和 Extranet。平板电脑使用相同的字符串失败,但 pascal 使其使用相同的驱动程序。
  • 在日志文件中搜索错误是基本的故障排除。祝你好运。

标签: java android sql-server jtds


【解决方案1】:

我不确定您是否仍然面临这个问题。在搜索其他内容时碰巧找到了这个问题。但我相信我是您提到的 Pascal,MSSQL client 是您所指的应用程序。我会尽量回答你的问题:

jtds 不需要您指定端口。默认取1433。

为 jtds 构建连接字符串是 very well documented。这就是我构建连接字符串的方式:

String properties = ";domain=" + domain + ";user=" + id + ";password=" + pass;
String conn = "jdbc:jtds:sqlserver://" + Server + "/" + Database + properties;

应用只需要网络(android.permission.INTERNET)访问。

希望答案对您和其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多