以下代码在BUTTONCLICK事件中:  outputtable.DatabaseName:=...;
  outputtable.TableName:=...;
  outputtable.open;
qusearch.First;  while not QUERY1.Eof do   //
    begin
      tempbzm:=qusearch.fieldbyname(cbbyhh.text).asstring+copy(qusearch.fieldbyname(cbbjldh.text).asstring,6,3);      with outputtable do
        if Locate('bzm',tempbzm, [loPartialKey]) then
          begin
            outputtable.edit;            outputtable.fieldbyname('zd1').asinteger := qusearch.fieldbyname(cbbdbds.text).asinteger;            outputtable.fieldbyname('dl1').asinteger := outputtable.fieldbyname('zd1').asinteger - outputtable.fieldbyname('qd1').asinteger;            outputtable.post;
          end;   
      qusearch.Next;
      progressbar1.Position:=progressbar1.Position+1;    end;
  outputtable.close;

解决方案 »

  1.   

    操作不支持 你的表中索引与Locate的问题 用Locate定位记录与索引相关
      

  2.   

    我昨天遇到类似问题,后来发现
    Locate('bzm',tempbzm, [loPartialKey])
    tempbzm的长度不能超过该字段的长度,好象就可以了
      

  3.   

    zyj320621(小朱) (:
    我的表中没有用到索引.
      

  4.   

    : sanpao() (  ) 信誉:100 长度?02-08-23那天还可以把数据导过去呀,和长度应该没有关系.
      

  5.   

    我的一个query ,用locate查找
    locate('user_id' , A, [loPartialKey])
    user_id的长度为4 ,当A 中字符的长度超过6时 
    就报错:operation cannot applicate
      

  6.   

    回复人: sanpao() (  ) 信誉:100 
    那么=>5会报错吗?
      

  7.   

    谢谢各位啦,
     sanpao() 对了.