就是说sql中间的错误 java没有埔捉 ( 积分: 300 )

  • 主题发起人 主题发起人 chshanghai
  • 开始时间 开始时间
C

chshanghai

Unregistered / Unconfirmed
GUEST, unregistred user!
环境:JBulider X / SQLServer 2000 /jdbc for sqlserver 2000 sp3
下面这段代码  proc_hkxx 是一个 procedure , 里面有句 sql 有问题.
也就是是说 执行是 肯定有有错误, 本来希望 catch(Exception e) 能显示出 错误提示,但现在 问题是:  java 没有埔捉 到 procedure 的 异常? 为什么会这样? 有谁遇到过这个问题 
try{
cs= conn.getCallableStatement("{call proc_hkxx('234')}");
cs.execute();
} catch(Exception e){
System.out.println(e.getMessage());
}
 
环境:JBulider X / SQLServer 2000 /jdbc for sqlserver 2000 sp3
下面这段代码  proc_hkxx 是一个 procedure , 里面有句 sql 有问题.
也就是是说 执行是 肯定有有错误, 本来希望 catch(Exception e) 能显示出 错误提示,但现在 问题是:  java 没有埔捉 到 procedure 的 异常? 为什么会这样? 有谁遇到过这个问题 
try{
cs= conn.getCallableStatement("{call proc_hkxx('234')}");
cs.execute();
} catch(Exception e){
System.out.println(e.getMessage());
}
 
你看execute的返回值
 
晕 , execute 全部返回 false 值 
我估计 是根据procedure 的返回的值 来的
问题我现在procedure 根本 没有来的及返回就出错了
 
如果Procedure语法有错,在创建的时候SQL Server管理器会检测出来的。怎么还能创建这个Procedure呢?
 
>>Procedure语法有错,在创建的时候SQL Server管理器会检测出来的。怎么还能创建这个>>procedure呢
呵呵,不是任何错误SQL Server管理器 都 会检测出来的。 难道你不知道?
讨论 正题吧, 为什么java没有埔捉 sql中间的错误
 
好像Java在数据库处理时经常捕捉不到这种异常,我也遇到过好些次,只能根据返回的值判断操作数据库是否成功。你可以试试java.sql.PreparedStatement,***,几乎没有一个错误能捕捉到的。
 
后退
顶部