공식 Sybase JDBC 드라이버를 사용하여 데이터베이스에 연결하고 CallableStatement를 만들고 매개 변수를 바인딩 한 다음 .execute()를 호출하여 저장 프로 시저를 호출합니다.Sybase JDBC 드라이버가 예외를 "먹는"이유는 무엇입니까?
그러나 저장 프로 시저가 실패하더라도 예외가 throw되지 않습니다. 필자는 Wireshark를 사용하여 데이터베이스 트래픽을 스니핑하고 오류 메시지가 다시 돌아와서 오류가 다시 발생하는지 확인할 수 있습니다.
- 왜 .Execute를()와 .executeUpdate 같습니다 마지막으로 나는 그러나 나는 아직도 두 가지 질문이 남아 있고, 대신 .Execute를의 .executeUpdate()() 를 사용하여 나에게 예외를주지 않는 것으로 확인 다르게 행동 하는가? 인터페이스의 SUN 문서에서 그들은 거의 같은 일을해야한다고 생각합니다 ...
- 저장 프로 시저를 호출 할 때 .execute()를 .executeUpdate()로 바꾸는 것이 항상 적절한가요? .executeUpdate()로 호출 할 수있는 특정 요구 사항을 준수해야합니다. 그것은 모두에서 예외 : SQLException을 던진다 : 같이 (I는 jTDS를 시도했습니다, 그것은 제대로 동작 :
업데이트을 (? 예를 들어, 마지막 단계로/삽입 문을 삭제/업데이 트를해야합니다) case - .execute() 및 .executeUpdate()). 그러나 내 제어 할 수없는 제약으로 인해 드라이버를 전환하는 것은 실제로 불가능합니다.
또한이 스토어드 프로 시저에서 반환 한 결과에 관심이 없습니다. 삽입/업데이트 유형 프로 시저입니다. 나는 그것이 실패했는지 안하는지를보기 위해서 (그리고 붙잡을 수 있을지/기록 할 것인가) 삽입 될 뿐이다. 내가 시도한 다른 것은 .execute() 후에 연결 해제 경고를 얻는 것이지만 아무것도 포함하지 않았다.
는
다른 드라이버가 동일한 동작을합니까? jTDS는 어떻습니까? http://jtds.sourceforge.net/ –