我这里有一个midas架构的程序,其中的服务器端的tquery如果执行出错时,
会不仅抛出error,还会弹出一个模式对话框。这点对于服务器端程序是大忌,
不知哪位大虾曾经遇到过类似问题并解决了的。

解决方案 »

  1.   

    需要说明的是,即使用  try......except  截获了异常,它还是要弹出对话框。
      

  2.   

    再说明一下,是该tquery执行了一条delete语句,而这条sql语句有误,
    在where子句中有col1=NULL的条件出现,导致出错。
    该TQuery执行sql语句的方式是使用了一个TUpdateSql对象,在这个TUpdateSql
    对象里构造delete语句(还有update语句)没有注意到值为null的情况,因而
    构造出了错误的sql语句。
      

  3.   

    错误信息是 Update Failed .
    其实不是sql语句的null判断条件了,我又试了一下,发现原来是不知什么时候数据库中
    存在有两行完全相同的记录,该sql语句同时影响两行数据,导致TQuery报错。
    虽然把脏数据清掉就没事了,但是TQuery出错时弹对话框的隐患还存在