动态数组怎么计算?
v: Variant;begin
   v:= varVarrayOf(['asdf']);
   v:= v+ varVarrayOf(['dfdsf']);  //这句不行,要进行数组加法怎么做???
end;

解决方案 »

  1.   

    v:=vararraycreate([0,1],olestr);
    v[0]:= varVarrayOf(['asdf']);
    v[1]:=  varVarrayOf(['dfdsf']);
      

  2.   

    v:=vararraycreate([0,1],olestr);
    v[0]:= varVarrayOf(['asdf']);
    v[1]:=  varVarrayOf(['dfdsf']);这样的方法比较好
      

  3.   

    那为什么: 
    v: Variant;
    begin
      v := VarArrayCreate([0, k], varVariant);
      for i:= 0 to k do
         v[i]:= 'asdf';
      ....
    以上都没有报错!
    最后,  
      用Query1.Locate(s, V, [loPartialKey]);这句却有时出错呢???
      (出错时,k:=0)
      

  4.   

    k:=0 那你得v是什么?
    不知道从一开始是什么情况
    VarArrayCreate([1, k], varInteger);
      

  5.   

    k=0时,其实就是
    Query1.Locate(s, varVarrayOf(['asdf']), [loPartialKey]);//出错k>0时
    Query1.Locate(s, varVarrayOf(['asdf','abc']), [loPartialKey]);//查询总是无结果

     Query1.Locate(s, 'asdf', [loPartialKey]);//无错而且有结果不知道为什么?