在DELPHI中,VAL这个函数是做什么用的?具体的功能是什么呢?看帮助信息我也没看明白呀!
     还有:下面这个语句对吗?我怀疑有问题,但是他偏偏又能成功运行!
with NhStDataMod.QBrowse.SQL  do
       begin
         Clear;
         Add('SELECT val(iif(isnullSpec),'''',spec)),Goods.GoodsNo,Goods.GoodsName,Goods.Unit,');             Add('Goods.Spec,Goods.mCurr,YmStock.*,');
         Add('val(format((YmStock.PrevNumber+YmStock.CurInNumber-YmStock.CurFcNumber+YmStock.CurPdNumber),"#.###0.000")) as jc,');
         Add('val(format((YmStock.PrevNumber*YmStock.muPrice*YmStock.muChange),"#.###0.000")) as syzj,');
         Add('val(format(((YmStock.PrevNumber+CurInNumber+CurPdNumber-CurFcNumber)*YmStock.CurmuPrice*YmStock.muChange),"##0.#,###0.000")) as zj');
         Add('FROM Goods INNER JOIN YmStock');
         Add('ON Goods.GoodsCode =YmStock.GoodsCode');
         Add('where Goods.mCode=:mmCode');
         Add('and (YmStock.PrevNumber<>0 or YmStock.CurInNumber<>0)')
       end;
    代码中的iif是什么东东?程序没错,而且能够正确运行;

解决方案 »

  1.   

    在这里Val和iif都是你所用的数据库中的函数
    在delphi中Val是一个将字符串转换为数字的函数,
    Val(S; var V; var Code: Integer)第一个参数是要转换的字符串,第二个参数存放转换后的数字,可以是整数或浮点数,第三个参数存放出错的字符索引值,例如:
    Var 
      V, Code: Integer;
    begin
      Val('123.445',V,Code);
    end;转换后: V = 123, Code = 4,表示字符串'123.445'转换为整数是123,在字符串第4位转换出错
      

  2.   

    非常感谢!  不过你说IIF也是函数:那我怎么在他的帮助栏没找到该函数呀!
        iif 我真的是没有听说过的....??
      

  3.   

    iif 就是一个缩写的 If ... then ... else 语句
    iif(a, b, c) a就是条件,如果为True,返回b,如果为False,返回c