frmdm.workonoff.open;
frmdm.workonoff.First;
while not frmdm.workonoff.eof do
begin
if frmdm.workonoff.fieldbyname('ccardid').asstring=db6 then
begin
frmdm.workonoff.edit;
frmdm.workonoff.FieldByName('Ccardid').asstring:=dbedit6.text;
frmdm.workonoff.post;
end;
frmdm.workonoff.Next;
end;

解决方案 »

  1.   

    frmdm.workonoff.open;
    后,纪录是以流的形式到客户端的。你执行frmdm.workonoff.RecordCount 时
    纪录还没有读完。这时frmdm.workonoff.RecordCount的值为-1表示还在读取中。
    你可以用判断frmdm.workonoff.eof的方式来每条纪录的执行,也可以用select count(*) from 的形式先得到数量。 
      

  2.   

    recordcount有时是不准确的,还是用eof判断比较好。
      

  3.   

    select count(*) from得到数量。比较麻烦,还是用Eof()好
      

  4.   

    var s:string;//定义成db6的类型frmdm.workonoff.open;
    frmdm.workonoff.First;
    while not frmdm.workonoff.eof do
    begin
    if frmdm.workonoff.fieldbyname('ccardid').asstring=db6 then
    begin
    s:=dbedit6.text;
    frmdm.workonoff.edit;
    frmdm.workonoff.FieldByName('Ccardid').asstring:=s;//dbedit6.text;//注意这
    frmdm.workonoff.post;
    end;
    frmdm.workonoff.Next;
    end;
      

  5.   

    frmdm.workonoff.open;
    frmdm.workonoff.First;
    for i:=1 to frmdm.workonoff.RecordCount do
    begin
    if frmdm.workonoff.fieldbyname('ccardid').asstring=db6 then
    begin
    frmdm.workonoff.edit;
    frmdm.workonoff.FieldByName('Ccardid').asstring:=dbedit6.text;
    //frmdm.workonoff.post;
    end;
    frmdm.workonoff.Next;
    end;
      

  6.   

    一定是dbedit6与表中的ccardid字段相关联了,其实用edit控件就行了