我先有如下代码:(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;它总是报找不到记录!!!晕啊!
高手请指教!