我先有如下代码:(rwlxdict是一个ClientDataSet,是字典表,有字段‘名称’(varchar(12)),‘代号’varchar(2),表中记录有两条:
名称 代号
计划任务 A
临时任务 BtmpStrTaskName: String;
tmpStrTaskCode: String;
vTmp: Variant;tmpStrTaskCode := sjxdrwClientDataSet.FieldByName('任务类型').AsString;
vTmp := rwlxdict.lookup('代码',VarArrayOf([tmpStrTaskCode]),'名称');
if not (VarType(vTmp) in [varNull]) then
tmpStrTaskName := vTmp;当tmpStrTaskCode为A或B时,都能成功找到记录
但是请看下面的几乎一样的代码:vTmp: Variant;
strSubNode : String; strSubNode := '';
vTmp := basedatamodule.rwlxdict.Lookup('名称',VarArrayOf([nodeCurrent.Text]),'代码');
//或者上面语句换成
//basedatamodule.rwlxdict.Locate('名称',VarArrayOf([nodeCurrent.Text]),[loPartialKey])
if not (VarType(vTmp) in [varNull]) then
strSubNode := vTmp;它总是报找不到记录!!!晕啊!
高手请指教!
名称 代号
计划任务 A
临时任务 BtmpStrTaskName: String;
tmpStrTaskCode: String;
vTmp: Variant;tmpStrTaskCode := sjxdrwClientDataSet.FieldByName('任务类型').AsString;
vTmp := rwlxdict.lookup('代码',VarArrayOf([tmpStrTaskCode]),'名称');
if not (VarType(vTmp) in [varNull]) then
tmpStrTaskName := vTmp;当tmpStrTaskCode为A或B时,都能成功找到记录
但是请看下面的几乎一样的代码:vTmp: Variant;
strSubNode : String; strSubNode := '';
vTmp := basedatamodule.rwlxdict.Lookup('名称',VarArrayOf([nodeCurrent.Text]),'代码');
//或者上面语句换成
//basedatamodule.rwlxdict.Locate('名称',VarArrayOf([nodeCurrent.Text]),[loPartialKey])
if not (VarType(vTmp) in [varNull]) then
strSubNode := vTmp;它总是报找不到记录!!!晕啊!
高手请指教!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货