数据库为Oracle,A表中有一列是非关键字段,字段名假设为aa,我想把这一列的数据查询出来做一般的运算,因此要将它转化,我用了下面的语句
strtofloat(Query1.FieldValues['aa'])
可是碰到这一字段为空值(null)时,就出错了,报告错误:null不是str类型。
请问怎样才能解决这样的问题?使得该字段有数据时可以正常转换,无数据时把它转化成一个默认值。(数据库中没有给出这一列的默认值,我对数据库没操作权限,不能改数据库了)

解决方案 »

  1.   

    你用null 看看
    不知道行不 
    我没用过
    这是这样想的 ,
    if Query1.FieldValues['aa'])='' then
    Query1.fieldvalues['a']:=null;
    别笑我啊 
    呵呵 
      

  2.   

    if query1.fieldbyname('aa').asstring<>''then
    strtofloat(Query1.FieldValues['aa'])
    ;
    为空的就ELSE 再同意成一个值
      

  3.   

    可是我转化后的数要参与一个计算字段Weight的计算,即
    Query1.FieldByName('Weight').Value:=strtofloat(Query1.FieldValues['aa'])+
                                        strtofloat(Query1.FieldValues['bb']);
    这些是写在计算字段的计算代码中的,是不是我要在进行计算前先要将Query1循环,给  strtofloat(Query1.FieldValues['aa'])先赋值啊?