我有个问题,是要用Delphi的locate实现不确定字段的查找问题,主要是我经常要用到动态查找、动态更新。我的作法如下:
procedure updata(db1,db2:TDataset;keys:TStrings);//用db1去更新db2,关键字段名在keys中
var i:integer;
strKeys:string;
v:Variant;
begin
strKeys:='';
v:=VariantArrayCreate([0,keys.count-1],VarVariant);
for i:=0 to keys.count-1 do begin
if i=keys.count-1 then
strKeys:=strKeys+keys[i]
else
strKeys:=strKeys+keys[i]+';';
v[i]:=db1.FieldByName(keys[i]).value;
end;
if db2.locate(strKeys,v,[]) then //这一步是关键,但是会出现Variant数据类型转换异常
.....
end;不知哪位在虾可以帮助解决这个问题,我的Email是[email protected]
procedure updata(db1,db2:TDataset;keys:TStrings);//用db1去更新db2,关键字段名在keys中
var i:integer;
strKeys:string;
v:Variant;
begin
strKeys:='';
v:=VariantArrayCreate([0,keys.count-1],VarVariant);
for i:=0 to keys.count-1 do begin
if i=keys.count-1 then
strKeys:=strKeys+keys[i]
else
strKeys:=strKeys+keys[i]+';';
v[i]:=db1.FieldByName(keys[i]).value;
end;
if db2.locate(strKeys,v,[]) then //这一步是关键,但是会出现Variant数据类型转换异常
.....
end;不知哪位在虾可以帮助解决这个问题,我的Email是[email protected]
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货