2008-09-25 19 views
1

J'ai récemment changé une application de stocker le nom d'utilisateur et mot de passe de base de données dans un fichier de configuration (gasp mot de passe stocké en texte brut dans un fichier de configuration).Quelle est la liste de codes d'erreur JConnect?

L'application demande maintenant à l'utilisateur de saisir son nom d'utilisateur et son mot de passe avant de pouvoir continuer.

La nouvelle version de l'application doit maintenant interroger le SQLException pour déterminer ce qui a causé l'exception (nom d'utilisateur ou mot de passe, le serveur de base de données inaccessible, délai de connexion, etc.) afin qu'il puisse décider quoi faire (demander à l'utilisateur de corriger le nom d'utilisateur et le mot de passe, dire à l'utilisateur de réessayer plus tard une fois que le problème du réseau a été trié, se reconnecter de manière invisible, etc.).

Essayer de trouver le SQLException errorCodes (SQLException.getErrorCode()) qui ont trait à ces (et autres) causes a été presque impossible et nous avons été contraints de deviner (ce qui peut parfois être dangereux).

Les documents de l'API Java indiquent qu'il s'agit d'un fournisseur spécifique.

Quelqu'un at-il les codes d'erreur qui peuvent être définis par le Sybase JConnect JDBC drivers?

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

Répondre

1

Il semble que la plupart des ErrorCodes dans le SQLException pris sont 0.

Cela signifie que vous devez vérifier la Connection/Statement/SQLWarnings ResultSet

connection.getWarnings(); 

ou les exceptions enchaînées à l'exception jeté

sqlException.getNextException(); 

la chose la plus délicate est ici que les exceptions pourraient être enchaînées SQLException ou IOException et peut-être d'autres (ne me souviens pas venir dans d'autres).