Gre*_*her 1 java sybase jdbc sqlexception
我正在使用官方的Sybase JDBC驱动程序连接到数据库并通过创建CallableStatement调用存储过程,将参数绑定到它并在其上调用.execute().
但是,我发现即使存储过程失败,也不会抛出任何异常.我可以通过使用Wireshark嗅探到数据库的流量并观察返回的错误消息来验证故障是否传播回给我.
最后我发现使用.executeUpdate()而不是.execute()确实给了我例外,但是我还有两个问题:
更新:我已经尝试过jTDS,它的行为正确(如:在两种情况下都抛出SQLException - 使用.execute()和.executeUpdate()).但是,由于我无法控制的限制,切换驱动程序实际上是不可能的.
另外:我对此存储过程返回的结果不感兴趣,它是一个插入/更新类型过程.我只会被插入以查看(并且能够捕获/记录)它是否失败.我尝试过的另一件事是在.execute()之后从连接中获取警告,但它也没有包含任何内容.
因为那些Sybase人都很疯狂,所以这就是为什么它会吃Exceptions!没有理由避免对准备/可调用语句使用executeUpdate().如果这是你必须使用它来使它工作,那么继续这样做.但是您应该向Sybase提交错误报告 - 驱动程序没有理由这样做.
| 归档时间: |
|
| 查看次数: |
2327 次 |
| 最近记录: |