TQuery的Locate问题!急!!!!! (100分)

  • 主题发起人 主题发起人 yxdelphi
  • 开始时间 开始时间
Y

yxdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
var
temparray: variant;
i: integer;
v: Tstrings;
---------------------------------
if v.Count>0 then
begin
temparray := VarArrayCreate([0, v.Count-1], varVariant);
for i:=0 to v.Count-1 do
begin
temparray := trim(Table_ZB.fieldbyname(v).asstring);
end;
result := MyQuery.Locate(FZBkeyfields,temparray,[]);
end;
----------
其中FZBkeyfields为MyQuery数据集的搜寻字段集;
v为FZBkeyfields转型成的Tstrings;
MyQuery.Locate(FZBkeyfields,temparray,[]);------报错!
--------------
现在的问题是我的FZBkeyfields是不确定的,一定要用variant数组来做;
还有如果我用Table来替换以上语句就没有问题!
用VarArrayOf(['Sight Diver','P'])不能符合要求!这样搜寻的字段集就定死了;
 
Locate的用法应类似于如下:
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver','P']), [loCaseInsensitive]);
你的出错原因可能在FZBkeyfields不符要求,因为这一部分需要的是一个字符串参数,并且
各字段名间要以分号分隔。如果还是不行,按上述的标准再逐个替换调试一下。
 
应该是可以的,
TDateSet.Locate('fld1;fld2;fld3',vararrayof(['string',1,'c']),[loCaseInsensitive])
就可以了,
 
现在的问题是我的FZBkeyfields是不确定的,一定要用variant数组来做;
还有如果我用Table来替换以上语句就没有问题!
用VarArrayOf(['Sight Diver','P'])不能符合要求!这样搜寻的字段集就定死了;
 
可以试试下面这句:
MyQuery.Locate(FZBkeyfields,VarArrayOf([temparray]),[]);
 
后退
顶部