【发布时间】: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