2008-09-25 118 views
1

我最近更改了一个应用程序,用于将数据库用户名和密码存储在配置文件中(gasp以明文形式存储在配置文件中)。什么是JConnect错误代码列表?

应用程序现在要求用户输入她的用户名和密码,然后才能继续。

应用程序的新版本现在有询问SQLException,以确定是什么原因造成的异常(无效的用户名或密码,数据库服务器无法访问,连接超时等) ,以便它可以决定下一步做什么(提示用户更正用户名和密码,告知用户稍后再次尝试网络问题进行排序,不可见地重新连接等)。

试图找到SQLException ErrorCode的(SQLException.getErrorCode()),涉及到这些(及其他)导致已经接近不可能的,我们已经被迫猜测(这有时可能是危险的)。

Java API文档说这是供应商特定的。

是否有人可以通过Sybase JConnect JDBC drivers设置错误代码?

  • JRE 1.5
  • jConnect for JDBC 2.0 (spec version 5.2)
  • Sybase IQ 12.7

回答

1

看来,在抓的SQLException大部分ErrorCode的是0

这意味着你必须检查Connection/Statement/ResultSet的SQLWarnings

connection.getWarnings(); 

或链接到抛出的异常

sqlException.getNextException(); 

这里的棘手的事情是链接的例外可能是SQLExceptionIOException可能还有其他人(不记得别人跨越推出)例外。