querystr:='select 日期,期号,奖号,百位,十位,个位 from 中奖数据  where 百位='+a+' and 十位='+b+' and 个位='+c+' union select 日期,期号,奖号,百位,十位,个位 from 中奖数据 where 数据ID in (select 数据ID+1 from 中奖数据 where 百位='+a+' and 十位='+b+' and 个位='+c+')';
   Query1.Close;
    Query1.SQL.Clear;
    query1.SQL.Add(querystr);
    try
      query1.Open;
    except
    on EVariantTypeCastError do
      howMessage('你要查询的奖号在历史上没有出现过!');
我在执行以上查询时,当查询的奖号在数据表中不存在时系统出错提示如下:
Project fc3ddpr.exe raised exception class EVariantTypeCastError with message
'Could not convert variant of type (Null) into type (Double)'. Process stopped. Use Step or Run to continue.
  加了一个try ... except 语名还是行好像是on EVariantTypeCastError do这一句还是不行,拦截不到错误
请高手指点一下:

解决方案 »

  1.   

    加了一个try ... except 语名还是不行好像是on EVariantTypeCastError do这一句还是不行,拦截不到错误 
    请高手指点一下: 
      

  2.   


    try
      ....
    except 
      on e:EVariantTypeCastError do ..........
    end;
      

  3.   

    try
      ....
    except 
      on e:EVariantTypeCastError do ..........
    end;
    用以上的语名不行拦截不到这个错误;
      

  4.   

    有异常类名的异常都可以捕捉,你在调试当然不会被你捕捉到。要设置一下调试选项。取消Stop On Language Exception复选框的选择。
      

  5.   

    回楼上,取消Stop On Language Exception复选框的选择之后,程序可以正常运行了,没有什么错误出现,
    但以下语名好像不起什么作用:
    try
      ....
    except 
      on EVariantTypeCastError do ..........
    end;
    要不要都没有影响,就好像这个错误不见了一样,不知这样有没有影响,在程序正式发布之后,也就是会不会出错?
      

  6.   

    我也遇到了这样的问题,在builder6.0下运行程序,过一下就出现类型转焕这个错误,然后就运行不下去了。但是直接点文件夹里面的exe文件运行就不会出现这个错误。不知道这是什么原因啊?
      

  7.   

    我也遇到了这样的问题,在builder6.0下运行程序,过一下就出现类型转焕这个错误,然后就运行不下去了。但是直接点文件夹里面的exe文件运行就不会出现这个错误。不知道这是什么原因啊?