Что такое список кодов ошибок JConnect? - PullRequest
1 голос
/ 25 сентября 2008

Я недавно изменил приложение с сохранения имени пользователя и пароля базы данных в файле конфигурации ( вздох пароль, сохраненный в виде простого текста в файле конфигурации).

Приложение теперь просит пользователя ввести свое имя пользователя и пароль, прежде чем продолжить.

Новая версия приложения теперь должна запросить SQLException, чтобы определить причину исключения (неверное имя пользователя или пароль, недоступность сервера базы данных, время ожидания соединения и т. Д.) чтобы он мог решить, что делать дальше (попросить пользователя исправить имя пользователя и пароль, попросить пользователя повторить попытку позже, как только проблема с сетью будет решена, повторно подключиться незаметно и т. д.).

Попытка найти SQLException errorCodes (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 Ответ

1 голос
/ 26 сентября 2008

Кажется, что большинство кодов ошибок в перехваченном SQLException равны 0.

Это означает, что вы должны проверить SQLWarnings Connection / Statement / ResultSet

connection.getWarnings();

или исключения, прикованные к сгенерированному исключению

sqlException.getNextException();

хитроумно здесь то, что цепочечными исключениями могут быть SQLException или IOException и, возможно, другие (не помню, чтобы встречались с другими). ​​

...